注解集成struts interceptor

Struts2拦截器注解的简单例子
文章分类:Java编程
最近开发一个项目,技术架构由spring2+hibernate3+struts2+freemarker搭建。struts2的action视图转发工作,本人觉得用注解直接在代码上配置很方便,想省去了配置struts.xml操作。但就是由于自己懒惰,在开发过程中遇到了一些麻烦,因为对struts2注解的不熟悉,不知道怎样做拦截器的注解,后来经过在网上查资料和自己不断的搞测试,终于把问题搞定了。
下面是我写的一个个简单测试例子:
//struts.xml
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">

   <interceptors>
<interceptor name="phoneUserInterceptor" class="phoneuserInterceptor"/>
<interceptor-stack name="myDefault">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="phoneUserInterceptor"/>
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="myDefault"/>
</package>

</struts>  
//spring配置文件
<bean name="myInterceptor"
class="com.wichina.interceptor.MyInterceptor">
</bean>
//拦截器
public class MyInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {

    System.out.println("=============拦截器============="+new Date().toLocaleString());
 
    return invocation.invoke();
  
}
}
//action修改前,拦截器不起作用。
@Namespace("/dd")
public class TestAction extends ActionSupport {
@Action(value ="kk", results = { @Result(name = "dd", type="freemarker",location = "/WEB-INF/ftl/test.ftl") })
public String execute() throws Exception {
ServletActionContext.getRequest().setAttribute("name", "jade");
return "dd";
}

protected String todoExecute() throws Exception{
ServletActionContext.getRequest().setAttribute("name", "jade");
return "dd";
}
}
//action修改后,拦截器起作用了。注意红色部分
@ParentPackage("default")
@Namespace("/dd")
public class TestAction extends ActionSupport {
@Action(value ="kk", results = { @Result(name = "dd", type="freemarker",location = "/WEB-INF/ftl/test.ftl") })
public String execute() throws Exception {
ServletActionContext.getRequest().setAttribute("name", "jade");
return "dd";
}

protected String todoExecute() throws Exception{
ServletActionContext.getRequest().setAttribute("name", "jade");
return "dd";
}
}

参考资料:
在struts2.1中使用注解和拦截器实现权限细粒度控制
http://huashui.org/post/struts2-1-annotations-interceptor-authentication.html
使用 Struts2.16 annotation 注解方式配置拦截器的注意事项
http://hi.baidu.com/wd78/blog/item/9c0d958b32133c759e2fb4b8.html
在struts2.1中使用注解和拦截器实现权限细粒度控制

你可能感兴趣的:(spring,编程,freemarker,Web,struts)