例子如下:
表單中有個屬性是userId,那麽在aciton中接收參數就要這麽寫:
private String userId;
然後寫getter 和 setter 方法,這個值默認就傳進去了。
值棧中的Action實例
Struts2框架總是把Action實例放在棧頂。因為Action在值棧中,而值棧又是OGNL中的根,所以引用Action的屬性可以省略“#”標記,這也是為什麽我們在結果頁面中可以直接訪問Action的屬性的原因。
Struts2中的命名對象
Struts2還提供了壹些命名對象,這些對象沒有保存在值棧中,而是保存在ActionContext中,因此訪問這些對象需要使用“#”標記。這些命名對象都是Map類型。
parameters
用於訪問請求參數。如:#parameters['id']或#parameters.id,相當於調用了HttpServletRequest對象的getParameter()方法。
註意,parameters本質上是壹個使用HttpServletRequest對象中的請求參數構造的Map對象,壹量對象被創建(在調用Action實例之前就已經創建好了),它和HttpServletRequest對象就沒有了任何關系。
request
用於訪問請求屬性。如:#request['user']或#request.user,相當於調用了HttpServletRequest對象的getAttribute()方法。
session
用於訪問session屬性。如:#session['user']或#session.user,相當於調用了HttpSession對象的getAttribute()方法。
application
用於訪問application屬性。如:#application['user']或#application.user,相當於調用了ServletContext的getAttribute()方法。
attr
如果PageContext可用,則訪問PageContext,否則依次搜索request、session和application對象。