注解的方式某些程度上能减少xml的配置量,个人感觉使程序更加清新...ssh框架的话主要是struts和spring的注解,今天先讲struts的convention插件..当项目加入struts应用以后,添加convention插件是非常方便的.
第一步:添加引用包
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
<version>2.1.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.1.4</version>
</dependency>
第二步:在struts.xml配置convention扫描路径
<constant name="struts.convention.package.locators" value="web" />
以上配置的意思是只要是包路径含web的所有类都将被扫描到
第三部:创建action类 并配置注解
package web;
import org.apache.struts2.convention.annotation.Namespace;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
@Namespace("/test")
public class HelloAction extends ActionSupport {
public String say(){
System.out.println("aaa");
return SUCCESS;
}
}
第四步:访问地址http://localhost:8080/demo-one/test/hello!say.action
aaa被打印 访问成功
补充:是否还记得xml配置的package,我们可以在其中定义拦截器之类的,现在我们用注解的方式只需配置一个常量即可
<constant name="struts.convention.default.parent.package"
value="crud-default" />
配置value=crud-default以后我们定义一个叫该名字的包
<package name="crud-default" extends="struts-default"><interceptor-stack name="defaultTokenStack">
<interceptor-ref name="token" />
</interceptor-stack>
</package>
以上配置以后,凡是被扫描到的action都可以使用token这个拦截器,使用方法:
我在做保存操作的action方法头部加
@Action(value = "save", interceptorRefs = { @InterceptorRef("defaultTokenStack") })
表示该方法将被套上defaultTokenStack拦截器
不作详细使用讲解,附带convention教程一份