最近开发一个项目,技术架构由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中使用注解和拦截器实现权限细粒度控制
http://zhaosoft.iteye.com/blog/272290
分享到:
相关推荐
该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。
1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 ...
18.3 使用DataSourceInjectorInterceptor拦截器 269 18.4 小结 273 第19章 定制结果类型 274 19.1 概述 274 19.2 编写一个自定义的结果类型 274 19.3 使用新的结果类型 277 19.4 小结 279 第20章 Velocity 280 ...
此系统前台采用最新Bootstrap框架技术 程序开发软件:MyEclipse8.5以上 数据库:mysql 后台采用技术: SSM框架(SpringMVC + Spring + Mybatis) ...5、spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
通过拦截器进行权限检查、日志输出等操作; 05、框架实现了文件上传共通、电子文档导出、校验、全局异常处理、分页等共通,具体参见相关画面的相关功能; 06、通过注解方式实现事务控制,相关画面有测试代码,具体在...
通过拦截器进行权限检查、日志输出等操作; 05、框架实现了文件上传共通、电子文档导出、校验、全局异常处理、分页等共通,具体参见相关画面的相关功能; 06、通过注解方式实现事务控制 07、关于数据库链接,可以...
13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...
13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...
8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...
13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.5.3.1. RedirectView 13.5.3.2. redirect:前缀 13.5.3.3. forward:...
此系统前台采用最新Bootstrap框架技术 程序开发软件:MyEclipse8.5以上 数据库:mysql 后台采用技术: SSM框架(SpringMVC + Spring + Mybatis) ...5、spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。
8.3 用处理程序拦截器拦截请求 297 8.3.1 问题 297 8.3.2 解决方案 298 8.3.3 工作原理 298 8.4 解析用户区域 302 8.4.1 问题 302 8.4.2 解决方案 302 8.4.3 工作原理 302 8.5 外部化区分区域的...
13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....
13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....