【问题标题】:servlet not calling struts2 , web.xml conflictservlet 没有调用 struts2,web.xml 冲突
【发布时间】:2013-04-08 08:27:21
【问题描述】:

这是我的web.xml 结构:

    <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>com.test.servlet.MyServlet</servlet-class>       
    </servlet>

    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/testServlet/*</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

   <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

在 Jsp 中,我调用了 servlet,如下所示。

<img src="${pageContext.request.contextPath}/testServlet?id=${someID}"

问题是当我像下面这样使用时,调用了 servlet。当我在过滤映射中将*.jsp 更改为/* 时,它无法调用servlet。

   <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>

但是当我使用*.jsp时,使用struts2-dojo插件的日历不会出现在jsp中。

【问题讨论】:

标签: jsp servlets struts2 web.xml


【解决方案1】:

您需要排除 myServlet 映射,这样它就不会从 struts 的过滤器调度程序传递。

在你的 struts.xml 添加:

&lt;constant name="struts.action.excludePattern" value="/ServletToExcludeFromStruts*"/&gt;

对于多个排除项,该值也以逗号分隔。

http://struts.apache.org/2.2.1/docs/webxml.html ..

帮助来自this link

【讨论】:

    【解决方案2】:

    您可以排除特定的请求路径,使其不被 Struts 2 处理

    Preventing Struts from Handling a Request

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 2015-12-25
      • 2011-11-23
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多