一、如何將參數從界面傳遞到Action?session
能夠把Struts2 中的Action看作是Struts1 的Action + ActionForm, 即只需在Action中定義相關的屬性(要有getters/setters方法), 而後界面傳參的名稱跟這些屬性保持一致便可。普通的數據類型,將能夠自動轉換。(空字符串轉換爲int類型時將報錯)app
二、如何將數據從Action傳輸到JSP?orm
可經過多種方式傳輸: 對象
a、經過Action的屬性傳輸 (直接給action的屬性賦值,在轉向JSP後, 直接用標籤<s:property value="OGNL表達式」/>取出便可。字符串
b、經過ActionContext傳輸 (可經過ActionContext.getContext().put()方法來傳值。在轉向JSP後, <s:property value="#name」/>從ActionContext中取值,<s:property value="name」/>先看Action中有沒有name屬性,若是沒有,則到ActionContext中找name的值。get
c、經過request、session等傳輸 (可經過ServletActionContext.getRequest()/getSession()等方法來獲取request/session對象,而後調用對應的setAttribute()方法來傳值。轉向JSP後,<s:property value="#request.name」/> 或<s:property value="request[‘name’]」/> 或者 <s:property value="#session.name」/> 或者 <s:property value=」#attr.name」/>依次從page/request/session/application scope取值。it
d、複雜對象的傳遞,如傳遞一個List<User>對象 users 到JSP後,io
<s:iterator value=」#users」>List
<s:property value=」username」/> <!--這裏訪問的是當前循環中user對象的username屬性,而不是Action中的username屬性。循環
</s:iterator>