Web架构学习(二)配置convention插件
Web架构学习(2)配置convention插件
注解的方式某些程度上能减少xml的配置量,个人感觉使程序更加清新...ssh框架的话主要是struts和spring的注解,今天先讲struts的convention插件..当项目加入struts应用以后,添加convention插件是非常方便的.
第一步:添加引用包
第二步:在struts.xml配置convention扫描路径
以上配置的意思是只要是包路径含web的所有类都将被扫描到
第三部:创建action类 并配置注解
第四步:访问地址http://localhost:8080/demo-one/test/hello!say.action
aaa被打印 访问成功
补充:是否还记得xml配置的package,我们可以在其中定义拦截器之类的,现在我们用注解的方式只需配置一个常量即可
配置value=crud-default以后我们定义一个叫该名字的包
以上配置以后,凡是被扫描到的action都可以使用token这个拦截器,使用方法:
我在做保存操作的action方法头部加
表示该方法将被套上defaultTokenStack拦截器
不作详细使用讲解,附带convention教程一份
注解的方式某些程度上能减少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教程一份