- public interface Action extends Serializable {
- public static final String SUCCESS = "success";
- public static final String NONE = "none";
- public static final String ERROR = "error";
- public static final String INPUT = "input";
- public static final String LOGIN = "login";
- public String execute() throws Exception;
- }
- =========================================================================
- 2,每次Action調用都會創建一個AcionContext,我們可以ActionContext context=ActionContext.getContext()來使用它.
- =========================================================================
- 獲取Session
- 方式一:
- 以下語句必須放在execute()方法裏,不然會取不到值;
- ActionContext ctx2 = ActionContext.getContext();//必須在execute()方法裏
- Map session2=ctx2.getSession();
- 方式二:
- action implements SessionAware{
- protected Map session;
- public void setSession(Map session) {
- this.session = session;
- }
- }
- 這樣就可以從該session對象中put或get對象.
- 方式三:
- 前兩個得到是session都不是HttpSession對象.而ServletActionContext.getRequest().getSession()則是HttpSession對象.
- ServletActionContext.getRequest().getParameter("username")
- ServletActionContext.getRequest()就是HttpServletRequest
- =========================================================================
- webwork中的aware接口
- aware接口要求實現類必須實現單一的setter方法,以便將資源應用到實現類中。
- 1、ParametersAware 指明action需要HTTP請求參數map。
- 2、ServletRequestAware 指明action需要ServletRequest對象。
- 3、SessionAware 指明action需要HttpSession對象。
- 4、ApplicationAware 指明action需要ServletContext對象。
- =========================================================================
- 可以處理多個請求的Action
- "!method"的方式支持多個請求,當我們用/test.action時,則調用execute方法,我們用/test!login.action時,將調用login方法,
- 即 actionName!method.action 這樣的URL映射方式。此外login()方法也可以命名爲 doLogin() 方法.
- =========================================================================
- 驗證文件採用ActionClass-validation.xml的命名規則,並不支持分別針對不同的method單獨定義驗證文件,我們可以採用如下方式:
- <action name="test" class="com.javaeye.action.TestAction"></action>
- <action name="login" class="com.javaeye.action.TestAction" method="login"></action>
- =========================================================================
- 有時我們只是頁面跳轉,並不需要聲明一個action,可以使用ActionSupport
- <action name="index" class="com.opensymphony.xwork.ActionSupport">
- <result name="success" type="dispatcher">/index.jsp</result>
- </action>
- =========================================================================
- 異常可以如下方式獲取:
- OgnlValueStack s = ActionContext.getContext().getValueStack();
- Object obj = s.pop();
- System.out.println(obj.getClass().getName());
- obj = s.pop();
- System.out.println(obj.getClass().getName());
- BTW:如果是以chain的方式轉向於此action,則要注意第二個元素纔是ExceptionHolder
- =========================================================================
- 爲action參數注入值;
- <action name="listUser" class="com.adt.action.user.ListUser">
- <param name="page.everyPage">10</param>
- <result name="success">/user/user_list.jsp</result>
- </action>
- =========================================================================
webwork筆記之action
xml 代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.