|
1.關(guān)于Action類(lèi)
昨天定義的LoginAction類(lèi)里面有兩個(gè)私有字段username和password,以及其get和set方法,這個(gè)名字有什么要求嗎? 首先要搞清楚,struts2接受到客戶(hù)端請(qǐng)求時(shí)會(huì)怎么做!當(dāng)struts2接受客戶(hù)端請(qǐng)求時(shí),會(huì)調(diào)用Action類(lèi)的setXXX()方法。也就是說(shuō)struts2會(huì)自動(dòng)調(diào)用 setXXX()方法,而不是尋找Action的XXX屬性。 所以,Action的屬性名可以和表單提交的數(shù)據(jù)字段不一樣,但是方法中 setXXX(),getXXX()必須和表單字段一樣。但是一般取名都是和表單字段一樣。 2.struts2是基于請(qǐng)求轉(zhuǎn)發(fā)的 在昨天的result.jsp頁(yè)面中用到了EL表達(dá)式,username : ${requestScope.username} password : ${requestScope.password} ,由于struts2是基于請(qǐng)求轉(zhuǎn)發(fā)的,數(shù)據(jù)由login.jsp輸入,struts2框架攔截請(qǐng)求,分析后轉(zhuǎn)發(fā)至LoginAction,處理后,再由 struts2轉(zhuǎn)發(fā)至result.jsp,得到顯示,整個(gè)過(guò)程是一個(gè)請(qǐng)求,所以這個(gè)EL表達(dá)式中的requestScope可以獲得輸入的數(shù)據(jù)。 3. 程序流程分析 見(jiàn)上一個(gè)問(wèn)題。 記住一點(diǎn),struts2是請(qǐng)求轉(zhuǎn)發(fā)(requestDispatch)而不是重定向(rewrite) |
|
|