`
Harold_xlp
  • 浏览: 159207 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用 Struts2.16 annotation 注解方式配置拦截器的注意事项

阅读更多

最近在使用Struts2.16 的Annotation 的方式来配置Action 包括拦截器,其中用到了自定义的拦截器,在运行的过程中,只配了自定义的拦截器,没有将默认的拦截器配进去,结果页面中的Vo对象传过去后是个空对象,百思不得其解。
以下是刚开始出错的配置(注意 紫色 部分):
@InterceptorRefs( {
@InterceptorRef("annotationInterceptor")
})
@Service("TestAction")
@Scope("prototype")
@Namespace("/t")
@Results( {
     @Result(name="listpage",location = "/WEB-INF/project/sample/index.ftl", type="freemarker"),
     @Result(name="addpage",location = "/WEB-INF/project/sample/addpage.ftl", type="freemarker")
   })
public class TestAction extends ActionSupport {

}

修改后的配置:注意红色的部分为新加进去的

@InterceptorRefs( {
@InterceptorRef("annotationInterceptor"),
@InterceptorRef("defaultStack")
})
@Service("TestAction")
@Scope("prototype")
@Namespace("/t")
@Results( {
     @Result(name="listpage",location = "/WEB-INF/project/sample/index.ftl", type="freemarker"),
     @Result(name="addpage",location = "/WEB-INF/project/sample/addpage.ftl", type="freemarker")
   })
public class TestAction extends ActionSupport {

}

修改后,页面的值就可以正常传过去了。最后经过反思终于明白,原来所有的 Action 假如你没有配置拦截器的时候,其实它是指定了默认的 拦截器栈的, 默认的拦截器栈是:defaultStack 该栈里面定义了多个拦截器,相关的拦截器会对页面的对象的值进行封装打包等操作,假如你指定自定义的拦截器,那么必须要手动的将默认的拦截器加进来,否则 就会在 Action 中得不到相关对象的值,Action使用自定义拦截器时,其不会将默认的拦截器加进来的,这点必须牢牢记住.

分享到:
评论

相关推荐

    Struts2之Annotation注解配置使用案例struts013

    在实际项目中,使用Struts2的注解配置可以提高开发效率,减少XML配置文件的维护工作。同时,由于注解更贴近代码,使得代码更具可读性。但是,需要注意的是,虽然注解简化了配置,但在大型项目中,混合使用XML和注解...

    使用struts拦截器+注解实现日志审计功能

    通过配置Struts配置文件或使用注解,我们可以指定拦截器的执行顺序和应用范围。 日志审计是对系统操作进行记录和分析的过程,对于理解系统行为、追踪异常、安全审计等方面至关重要。在Struts中,我们可以通过自定义...

    struts2 使用Annotation 配置的小例子

    在Struts2中,Annotation允许开发者无需XML配置文件就能定义Action、结果类型、拦截器等。 在"struts2 使用Annotation 配置的小例子"中,我们可能会看到以下几个核心的Annotation: 1. `@Action`: 这个Annotation...

    struts2利用注解annotation实现文件下载

    Struts2框架通过其扩展插件——Struts Convention Plugin,支持使用注解的方式来配置控制器。这种方式简化了配置过程,使得开发者可以更专注于业务逻辑的编写。 #### 三、使用注解实现文件下载 在Struts2中实现...

    struts 拦截器,扩展,以及java annotation

    - 拦截器的配置通常在`struts.xml`配置文件中进行,通过`<interceptor>`和`<interceptor-stack>`元素定义。 2. **扩展Struts**: - Struts允许开发者自定义拦截器,以满足特定需求。创建自定义拦截器需要继承`...

    struts2 使用注解现在零配置不需要在使用struts.xml配置文件,可以直接跑

    然而,随着技术的发展,传统的XML配置方式逐渐被注解驱动的配置所取代,以提高开发效率和代码的可读性。在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们...

    struts2 interceptor annotation plugin

    而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用注解来配置拦截器的方式,这种方式更加简洁、直观,减少了XML配置文件的复杂性。 注解(Annotation)是Java编程语言的一个重要特性,它...

    自定义拦截器的实现以及拦截器的详细配置

    3. **注解方式配置**:除了XML配置,Struts2还支持注解方式来配置拦截器。在Action类上使用`@InterceptorRef`注解指定拦截器栈。 ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts...

    在嵌入式jetty环境下运行struts2Annotation项目

    在`web.xml`中配置Struts2 Filter,但请注意,由于我们使用了注解,此文件可以非常简洁,甚至可省略。 ### 6. 运行项目 通过创建的Jetty启动类运行项目,服务器会加载并解析Struts2 Annotation定义的Action,处理...

    spring的Annotation注解.

    - **自定义限定器注解**:除了使用`@Qualifier`,开发者还可以创建自己的限定符注解,以提供更高级别的控制。例如,可以通过创建一个名为`@MainCatalog`的注解,并将其应用于Bean,然后在需要的地方使用`@Qualifier...

    struts2 hibernate3 spring2.5 annotation 整合

    Hibernate3支持注解配置,可以在实体类上直接声明字段与数据库表的对应关系。 Spring2.5是依赖注入(DI)和面向切面编程(AOP)框架,它管理着应用中的对象生命周期和依赖关系。Spring2.5引入了对注解的支持,可以...

    Struts2 注解 Demo

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

    struts2annotation json

    标题“struts2annotation json”暗示我们将探讨如何在Struts2中使用注解来处理JSON相关的功能。首先,让我们深入理解Struts2的注解系统。 1. **Struts2注解**: - `@Action`: 这个注解用于标记一个方法为处理HTTP...

    struts2注解配置

    Struts2注解配置是Java Web开发中一种高效、简洁的框架配置方式,它允许开发者在类或方法级别上直接定义Action、结果类型、参数映射等信息,从而避免了传统XML配置文件的繁琐。本资料集合了关于Struts2注解配置的...

    struts annotation Hello World

    在传统的Struts 2应用中,开发者通常需要编写XML配置文件来定义Action(控制器)、结果页面和拦截器等。然而,使用注解可以极大地减少这些配置文件的复杂性。Struts 2支持多种注解,如`@Action`、`@Result`、`@...

    spring的annotation-driven配置事务管理器详解 (多数据源配置

    Spring 的 Annotation-Driven 配置事务管理器详解(多数据源配置) Spring 框架提供了强大的事务管理机制,通过使用 Annotation-Driven 配置,可以方便地管理事务。在多数据源配置中,spring 的 Annotation-Driven...

    ssh2 Annotation注解 框架+oracle

    在这个框架中,Spring提供了依赖注入和事务管理,Struts2负责MVC(模型-视图-控制器)架构,而Hibernate2则处理对象关系映射,简化数据库操作。在"ssh2 Annotation注解 框架+oracle"的场景下,我们将深入探讨SSH2...

    使用struts2的annotation验证

    在Struts2中,注解(Annotation)验证是一个强大的特性,它允许开发者在Action类的方法参数上直接定义验证规则,简化了传统XML配置的复杂性。这篇博文将深入探讨如何使用Struts2的注解进行数据验证。 首先,我们...

Global site tag (gtag.js) - Google Analytics