struts2 学习备忘

      跟着项目走, 现在的项目需要struts2, 那就需要学习的一下struts2 的使用。

      无配置现在是主流了, 这个我很早就预计的到了。

  • 自动注入 Form, 重点是实现 getModel() 方法。

      使用 ModelDriven 的方式, Action 类或其父类必须实现 com.opensymphony.xwork2.ModelDriven 接口。

private MyForm form; //MyForm 是一个对应表单的类 public MyForm getModel() { return form; }

          如果还实现 com.opensymphony.xwork2.Preparable 接口 public void prepare() throws Exception { //Action 方法执行前执行的方法 //Struts 要抢Spring 的饭碗? }  

  • 请求 URL 对应类

  1. login.action 对应 com.XXX.web .LoginAction.java 至于其的命名空间 :   com.XXX.web , 自己配置的。
  2. 请求 /org/ ac-application .action 对应 com.XXX.web . org. AcApplication Action ,

    注意类是驼峰大写, 文件时小写中间加 - , 还有在命名空间中的层次关系, org ”;

  3. 当请求 /login!query.action , 将调用 LoginAction query() 方法,当请求 /login!save.action 时,将调用 LoginAction save() 方法。

  4. Struts.xml 中配置了寻址 Action 类的方式

      <constant name="struts.convention.package.locators" value="web" /> <constant name="struts.convention.package.locators.basePackage" value="com.XXXX" />

    从这个配置信息中,我们可以大概知道 Action 类得位置:

com.XXXX.*****[.****].web.***Action.java


      5. 可以通过 元注释:

               @Action("/different/url" )

               或 

               @Actions({       

                     @Action("/different/url" ),

                     @Action("/another/url" ) }

               )

   这两个元注释可以写于 Action 类中修饰某个方法。

  • 请求跳转,使用元注释 @ Results 一般放在 class 上面修饰
  1. 例子:@Results({ @Result(name="failure", location="fail.jsp") }) public class XxxxAction{……..} 
  2. 格式:@Results( @Result(name=””, location=””, type=””,params={“key0”,”value”””}),N…. ) Name和location是必要的,name是跳转字符串标识,location是跳转页面或action。 Type 的值有redirect , stream(文件下载) params 是一个key-value对。 
  • Action 类入口方法

默认是 public String execute(), 返回的跳转标识字符串。

       可以通过 Xxx!method.action 来指定入口方法。


你可能感兴趣的:(spring,exception,struts,Class,action,redirect)