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