org.apache.struts2.dispatcher.filterdispatcher不允许链中的其他过滤器被触发?

时间:2012-05-22 12:45:26

标签: struts2

我正在使用struts 2.在我的web.xml我有以下配置,

    <filter>
        <description>filter for application</description>
        <display-name>AppBasicFilter</display-name>
        <filter-name>AppBasicFilter</filter-name>
        <filter-class>com.myapp.AppBasicFilter</filter-class>
    </filter>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>AppBasicFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

对于此配置,我正在触发正确的动作类。但是,在动作类执行之前或之后,我的AppBasicFilter都没有被触发。

我试图反编译并看到struts 2 FilterDispatcher编码,我看到如果存在映射,它不会在其中执行FilterChain.doFilter()

这个问题就是因为这个问题。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我开始知道FilterDispatcher存在问题。所以我必须使用StrutsPrepareAndExecuteFilter,它可以在struts 2.1或更高版本中使用。但不幸的是我的项目使用的是struts 2.0。所以我迁移到struts 2.1并使它工作。