`
jadewoo
  • 浏览: 86342 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts2拦截器注解的简单例子

阅读更多
最近开发一个项目,技术架构由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
分享到:
评论
1 楼 nusubmarine 2015-11-27  
用到了,超级感谢

相关推荐

    struts2 拦截器实例

    3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...

    Struts2拦截器及其用法详细说明

    Struts2的拦截器可以通过XML或注解两种方式进行配置: - XML配置:在`struts.xml`文件中,使用`&lt;interceptor&gt;`元素定义拦截器,`&lt;interceptor-stack&gt;`元素组合多个拦截器,`&lt;package&gt;`元素下的`interceptors`属性...

    struts2注解与拦截器demo

    该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。

    Struts2拦截器源码

    Struts2中的拦截器可以通过XML配置文件或注解进行声明。例如,`struts-default.xml`中包含了默认的拦截器栈,如`params`拦截器用于处理请求参数,`exception`拦截器用于处理异常,`validation`拦截器进行数据校验。 ...

    Struts2 拦截器 和 Java 中的动态代理

    在Struts2中,ActionInvocation接口代表了Action的执行过程,它可以被视为一个简单的调用栈,每个拦截器都是栈上的一个元素。当调用`invoke()`方法时,会按顺序执行这些拦截器,直到到达Action。这个设计模式与Java...

    struts2拦截器和验证框架(适合初学者-经藏版)

    ### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...

    一个Struts2的核心拦截器例子

    核心拦截器是Struts2框架的重要组成部分,它们允许开发者在动作执行前后插入自定义逻辑,以实现如日志、权限验证、数据校验等常见功能。下面将详细讲解Struts2的核心拦截器以及如何在项目中使用它们。 1. **Struts2...

    struts2类型转换 拦截器 校验的例子

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...

    Struts2.3.4.1 注解实例(二十)

    4. **拦截器注解**: Struts2支持自定义拦截器,通过 `@InterceptorRef` 可以在方法或类级别引用拦截器链。这允许你方便地控制拦截器的顺序和使用。 5. **类型转换注解**: `@TypeConversion` 或 `@Converter` ...

    Spring3Struts2Mybatis3注解开发实例

    `@AnnotationsAware`拦截器允许Struts2识别并处理注解,增强了其灵活性。 Mybatis是轻量级的持久层框架,专注于SQL映射,避免了JDBC的繁琐操作。在Mybatis3中,`@Select`、`@Insert`、`@Update`和`@Delete`等注解...

    Struts2 拦截器 手动验证 或 自动验证 后台登录验证 源码

    通过研究这些例子,你可以深入理解Struts2的拦截器机制,并将其应用于实际项目中,提高应用的安全性和用户体验。 总之,掌握Struts2的拦截器和验证机制对于Java Web开发者来说非常重要,它们能够帮助你构建更加健壮...

    Struts2+spring注解配置

    例如,`@ParentPackage("struts-default")` 将使用默认的 Struts2 拦截器配置。 3. **Namespace 注解** - `@Namespace` 用于定义 Action 所属的命名空间,这有助于组织和隔离不同的功能模块。例如,`@Namespace("/...

    struts2拦截器

    Struts2 拦截器是其核心特性之一,它基于Apache的拦截器模式实现,为应用程序提供了灵活的控制流程,使得在Action调用前后可以插入自定义的处理逻辑。Struts2 框架通过拦截器实现了MVC模式中的业务逻辑与表示层的...

    Struts2 注解 Demo

    在`Struts2Demo`项目中,你还可以学习到如何配置Struts2的`struts-plugin.xml`和`struts.xml`文件,以便启用注解支持,并了解如何在web.xml中配置过滤器,确保Struts2框架能正确拦截请求。 总结,Struts2注解是...

    Struts2+spring注解配置简介

    在实际应用中,我们还可以利用Struts2的拦截器(Interceptor)和Spring的AOP结合,实现更灵活的业务逻辑处理。通过在Action类或方法上添加自定义注解,并编写相应的拦截器,可以实现如权限验证、日志记录等功能。 ...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...

    Struts 2使用注解配置Action

    6. 拦截器配置:Struts 2的注解还可以用来配置拦截器。比如,`@SkipInterceptors`可以用来跳过某些拦截器,而`@InterceptorRef`则可以引用并顺序指定拦截器栈。 通过上述注解,我们可以实现无XML配置的Struts 2应用...

    struts2.3.4.1注解零配置

    在这个"struts2.3.4.1注解零配置"的例子中,我们将深入探讨如何利用Struts2的注解来构建一个简单的登录系统。 首先,了解Struts2的核心概念是必要的。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架...

    Struts2注解开发jar

    它可以指定动作的名字、结果类型、拦截器栈等。例如: ```java @Action(value = "helloWorld", results = { @Result(name = "success", location = "hello.jsp") }) public class HelloWorldAction { public String...

    struts2注解小实例

    在这个小实例中,我们将深入探讨如何利用Struts2的注解来构建一个简洁而高效的Web应用。 首先,让我们了解什么是注解。在Java中,注解是一种元数据,它提供了一种安全的方法来向编译器、JVM或框架提供信息。Struts2...

Global site tag (gtag.js) - Google Analytics