1.練習(xí)問題
1)Action中利用DAO可以獲取出數(shù)據(jù)庫(kù)數(shù)據(jù),但是JSP獲取不到.
原因:1.檢查Action屬性及getter方法
2.檢查struts.xml中
3.檢查execute中接收集合的變量是否為局部變量
2) 工程啟動(dòng)出現(xiàn)錯(cuò)誤
由于web.xml或struts.xml配置有誤.可以根據(jù)異常信息尋找.
2.補(bǔ)充問題
1)Action屬性及setter和getter方法的問題
Action屬性在接收和傳出數(shù)據(jù)時(shí),setter和getter方法是關(guān)鍵.
a.接收時(shí),表單組件name="user" ,action要有setUser方法才可以接收.
b.傳出數(shù)據(jù)時(shí),JSP使用${user},action要有g(shù)etUser方法對(duì)應(yīng)才可以獲取.
public class Action{
private String name;//成員變量name
//有一個(gè)屬性,名字是user
public String getUser(){
return name;
}
public void setUser(String user){
name = user;
}
}
3.OGNL技術(shù)
Object Graphics Navigation Language(對(duì)象圖導(dǎo)航語(yǔ)言)
OGNL是一種表達(dá)式語(yǔ)言技術(shù),封裝在ognl.jar開發(fā)包中.
可以很方便的對(duì)對(duì)象的屬性進(jìn)行獲取和設(shè)置.
1)什么是EL,有什么用
屬于表達(dá)式語(yǔ)言,可以訪pageContext,request,session,application存儲(chǔ)范圍的數(shù)據(jù).可以簡(jiǎn)化JSP程序.
2)OGNL表達(dá)式,有什么用
屬于表達(dá)式語(yǔ)言,需要ognl.jar提供支持.可以完成以下操作
a.可以訪問對(duì)象屬性(獲取和設(shè)置)
基本類型屬性:"id","name"
數(shù)組類型屬性:"love[0]","love[1]"
List類型屬性:"city[0]","city[1]"
Map類型屬性:"books.key","books['key']"
b.可以訪問對(duì)象的方法
"city.size()","name.toUpperCase()"
c.可以訪問靜態(tài)常量和方法
"@java.lang.Math@PI"
d.可以訪問集合中的數(shù)據(jù),進(jìn)行集合過濾等操作
"persons.{?#this.age>20}" : 返回persons集合中,滿足age>20的所有元素.
?指的是返回所有滿足條件的元素
^指的是返回第一滿足條件的元素
$指的是最后一個(gè)滿足條件的元素
e.支持Java中的運(yùn)算符和表達(dá)式
"\"name\"+name","id+10"
f.定義一個(gè)List和Map類型的常量
List常量:"{1,2,3}"
Map常量:"#{'age':20,'name':\"tom\"}"
3)OGNL標(biāo)準(zhǔn)結(jié)構(gòu)
OGNL有3個(gè)重要組成部分,一個(gè)OGNL引擎,一個(gè)是root對(duì)象,另一個(gè)是context對(duì)象.
訪問context區(qū)域需要使用"#key"格式.
沒有"#",例如"name",意思是訪問root對(duì)象的name屬性
4.OGNL技術(shù)在Struts2中應(yīng)用
1)OGNL在xwork中進(jìn)行了改造
xwork將OGNL中的root對(duì)象進(jìn)行了改造,將其改造成了一個(gè)棧結(jié)構(gòu),類型是CompountRoot繼承自ArrayList.在訪問root屬性時(shí),從棧頂對(duì)象向下依次查找,找到屬性值返回.
2)ValueStack結(jié)構(gòu)
ValueStack是Struts2中非常重要的數(shù)據(jù)對(duì)象,當(dāng)客戶發(fā)送一個(gè)請(qǐng)求后,控制器會(huì)根據(jù)當(dāng)前請(qǐng)求創(chuàng)建一個(gè)ValueStack,并將請(qǐng)求處理相關(guān)的數(shù)據(jù)進(jìn)行填充.
root棧:存放當(dāng)前請(qǐng)求對(duì)應(yīng)的Action對(duì)象(棧頂)
context(Map):存放request,session,application,parameters等信息
3)JSP獲取業(yè)務(wù)數(shù)據(jù),需要使用Struts標(biāo)簽+OGNL表達(dá)式技術(shù)組合
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 |