跟着项目走, 现在的项目需要struts2, 那就需要学习的一下struts2 的使用。
无配置现在是主流了, 这个我很早就预计的到了。
使用 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 的饭碗? }
请求 ” /org/ ac-application .action ” 对应 com.XXX.web . org. AcApplication Action ,
注意类是驼峰大写, 文件时小写中间加 “ - ” , 还有在命名空间中的层次关系, “ org ”;
当请求 /login!query.action 时 , 将调用 LoginAction 的 query() 方法,当请求 /login!save.action 时,将调用 LoginAction 的 save() 方法。
<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 类中修饰某个方法。
默认是 public String execute(), 返回的跳转标识字符串。
可以通过 Xxx!method.action 来指定入口方法。