从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置。与以前相比较,Convention插件更彻底。
使用Convention插件,需要将struts2-convention-plugin-2.3.1.2.jar文件复制到lib目录中即可
这个插件是自动搜索action的功能:
规则如下:它会自动搜索位于action,actions,struts、struts2包下的java类。
Convention插件会把如下两种java类当成action处理:
1.所有实现了com.opensymphony.xwork2.Action的java类
2.所有类名以Action结尾的java类
找到了对应的action类之后,Convention插件会按照约定部署这些action,部署这些action时,action,actions,struts,struts2包会映射为根命名空间,而这些包下的
子包则被映射为对应的命名空间。
这个插件的注解功能
有时候对于struts2的应用,我们写了大量的xml配置,这个找到action,然后找配置,很不方便,结合注解开放,打开对应的action可以让人一目了然
网上有很多前辈写了很多总结,我直接应用就可以了,哈哈
引用:
http://blog.csdn.net/oathevil/article/details/7084979
自个的测试代码
package com.hu.web.action;//一定要在action、actions、struts、struts2 这种包下,不然插件扫描不到此action import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Actions; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.ResultPath; import com.opensymphony.xwork2.ActionSupport; @Namespace("/test")//访问test空间 @ResultPath("/WEB-INF")//指定该action到/web-inf目录下寻找物理视图资源 public class LoginAction extends ActionSupport { private String name; private String pwd; private String tip; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } @Actions({ @Action(value="/test",results={ @Result(name="login",location="/index.jsp") }), @Action(value="/test1",params={"tip","当访问此action路径是,会注入tip属性值"}) }) public String login(){ System.out.println(1); return "login"; } }
软件,让生活变得更简单......