Web开发学习(2)配置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教程一份

猜你喜欢

转载自sdh88hf.iteye.com/blog/1234911
今日推荐