webwork笔记之action

xml 代码
 
  1. public interface Action extends Serializable {   
  2.     public static final String SUCCESS = "success";  
  3.     public static final String NONE = "none";  
  4.     public static final String ERROR = "error";  
  5.     public static final String INPUT = "input";  
  6.     public static final String LOGIN = "login";  
  7.     public String execute() throws Exception;  
  8. }  
  9. =========================================================================  
  10. 2,每次Action调用都会创建一个AcionContext,我们可以ActionContext context=ActionContext.getContext()来使用它.  
  11. =========================================================================  
  12. 获取Session  
  13. 方式一:  
  14. 以下语句必须放在execute()方法里,不然会取不到值;  
  15. ActionContext ctx2 = ActionContext.getContext();//必须在execute()方法里  
  16. Map session2=ctx2.getSession();  
  17. 方式二:  
  18. action implements SessionAware{  
  19. protected Map session;  
  20. public void setSession(Map session) {  
  21.     this.session = session;  
  22. }  
  23. }  
  24. 这样就可以从该session对象中put或get对象.  
  25. 方式三:  
  26. 前两个得到是session都不是HttpSession对象.而ServletActionContext.getRequest().getSession()则是HttpSession对象.  
  27. ServletActionContext.getRequest().getParameter("username")  
  28. ServletActionContext.getRequest()就是HttpServletRequest  
  29. =========================================================================  
  30. webwork中的aware接口   
  31. aware接口要求实现类必须实现单一的setter方法,以便将资源应用到实现类中。  
  32. 1、ParametersAware 指明action需要HTTP请求参数map。  
  33. 2、ServletRequestAware 指明action需要ServletRequest对象。  
  34. 3、SessionAware 指明action需要HttpSession对象。  
  35. 4、ApplicationAware 指明action需要ServletContext对象。   
  36. =========================================================================  
  37. 可以处理多个请求的Action  
  38. "!method"的方式支持多个请求,当我们用/test.action时,则调用execute方法,我们用/test!login.action时,将调用login方法,  
  39. 即 actionName!method.action 这样的URL映射方式。此外login()方法也可以命名为 doLogin() 方法.  
  40. =========================================================================  
  41. 验证文件采用ActionClass-validation.xml的命名规则,并不支持分别针对不同的method单独定义验证文件,我们可以采用如下方式:  
  42. <action name="test" class="com.javaeye.action.TestAction"></action>  
  43. <action name="login" class="com.javaeye.action.TestAction" method="login"></action>  
  44. =========================================================================  
  45. 有时我们只是页面跳转,并不需要声明一个action,可以使用ActionSupport  
  46. <action name="index" class="com.opensymphony.xwork.ActionSupport">  
  47.     <result name="success" type="dispatcher">/index.jsp</result>  
  48. </action>  
  49. =========================================================================  
  50. 异常可以如下方式获取:  
  51. OgnlValueStack s = ActionContext.getContext().getValueStack();  
  52. Object obj = s.pop();  
  53. System.out.println(obj.getClass().getName());  
  54. obj = s.pop();  
  55. System.out.println(obj.getClass().getName());  
  56. BTW:如果是以chain的方式转向于此action,则要注意第二个元素才是ExceptionHolder   
  57. =========================================================================  
  58. 为action参数注入值;  
  59. <action name="listUser" class="com.adt.action.user.ListUser">    
  60.       <param name="page.everyPage">10</param>    
  61.       <result name="success">/user/user_list.jsp</result>    
  62. </action>  
  63. =========================================================================  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值