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中使用注解和拦截器实现权限细粒度控制
分享到:
相关推荐
2. **拦截器(Interceptor)**:类似于Spring的AOP,Struts2的拦截器在Action执行前后进行额外处理,如登录检查、数据校验等。 3. **结果映射(Result Mapping)**:定义Action执行后的跳转逻辑,可以是JSP、...
集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...
4. **配置方式**:Struts 2支持XML和注解两种配置方式,注解配置更加简洁,减少了XML的繁琐。 5. **Tiles视图技术**:虽然不是Struts 2的核心部分,但可以通过Struts 2的集成来实现页面布局和组件重用,提高开发...
这篇博客"Spring集成Struts、JSF、WebWork2"探讨了如何将这些框架与Spring进行整合,以构建更复杂、灵活的Web应用程序。 首先,让我们详细了解一下这三个框架: 1. **Struts**: Apache Struts 是最早的Java MVC...
在集成Struts2和Shiro时,我们可以使用H2作为数据存储,创建对应的表结构,比如users、roles、permissions等,然后在Shiro的配置中指定H2作为Realm的数据源。 总之,Struts2和Shiro的集成为Java Web应用提供了强大...
Struts2提供了Action、Result和Interceptor等组件,使得业务逻辑和视图的绑定更为灵活。在本项目中,Struts2可能作为Spring的前端控制器,接收用户请求,然后通过Action转发到Spring的Controller进行处理。 再者,...
8. **xwork-core.jar**:Struts 2的核心库,包含Action、Result、Interceptor等核心概念。 9. **ognl.jar**:Object-Graph Navigation Language,用于在Action和视图之间传递数据,以及在拦截器中执行表达式。 在...
**Liferay 6 + Struts 2 集成项目详解** 在Web应用程序开发中,Liferay Portal和Struts 2框架的结合使用可以提供强大的功能和灵活性。Liferay是一款开源的企业级门户平台,它提供了内容管理、社交网络、工作流等...
它提供了丰富的拦截器(Interceptor)机制,支持多种视图技术,并且能够与各种模板引擎如FreeMarker、JSP等无缝集成。Struts2的核心配置文件通常为`struts.xml`,其中定义了Action、Result、拦截器栈等配置,使得...
2. 集成Struts2:配置struts2.xml,指定Action类和结果映射,同时使用Spring插件将Action实例化交给Spring管理。 3. 配置JPA:设置persistence.xml,定义实体类和数据源,以及JPA供应商的相关属性。 4. 事务管理:...
Struts提供了Action、ActionForm、ActionMapping等组件,以及Interceptor拦截器机制,便于实现业务逻辑的处理和页面跳转。 Hibernate 是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将数据库表与Java...
在集成Struts2和Spring时,我们需要一些特定的Jar包来支持这种整合。这些Jar包通常包括以下几个部分: 1. **Struts2核心库**:Struts2的核心库提供了MVC框架的基础,如Action、Result、Interceptor等。例如`struts2...
- 集成Struts2和Spring:在struts.xml中配置Struts2-Spring插件,使得Action类可以由Spring管理。 - 编写Action和Service:创建Action类,使用Spring的@Autowired注入Service,然后在Service中实现业务逻辑。 - ...
集成Struts和Spring主要有以下几个步骤: 1. **引入Spring插件**:在Struts 2中,需要添加Spring插件,如`struts2-spring-plugin-*.jar`到项目类路径中。 2. **配置Spring**:在Spring配置文件(如`...
本案例主要讨论的是如何将两个经典的Java Web框架——iBatis和Struts进行集成,以实现数据的增删改查功能。首先,我们需要理解这两个框架的核心概念。 iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写...
7. **最佳实践**:在实际开发中,集成Struts2和Spring可以遵循一些最佳实践,例如使用注解进行配置以减少XML的复杂性,使用Spring的AOP处理事务,以及利用Spring的MVC支持来简化视图和模型的处理。 8. **测试与调试...
拦截器(Interceptor)是Struts2的另一个重要组成部分,它允许在Action执行前后插入自定义逻辑,如日志记录、权限验证等。 三、MVC模式 在Struts2中,Model代表业务逻辑,View负责展示数据,Controller则协调Model...
- **Struts2**:继承了Struts1的Front Controller模式,并引入了拦截器(Interceptor)机制,使得扩展性和灵活性更强。拦截器链允许在请求到达Action之前和之后执行自定义逻辑。 2. 表达式语言(EL)支持: - **...
1. **Struts2框架介绍**:Struts2是一个基于MVC设计模式的开源Web应用框架,它在Struts1的基础上进行了大量改进,提供了更强大的拦截器(Interceptor)机制,使得开发者能够灵活地扩展和定制应用程序的行为。...