Struts2标签错误:using Struts tags without the associat解决

核心提示:filter-mapping filter-name struts2 / filter-name url-pattern *.jsp / url-pattern / filter-mapping 最近使用 struts ,在使用标签的时候,出现了这样一个问题。 原本使用标签,引用方法是默认配置: web.xml: filter filter-name struts2 / filter-nam

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

最近使用struts,在使用标签的时候,出现了这样一个问题。

原本使用标签,引用方法是默认配置:

web.xml:

<filter>  
  <filter-name>struts2</filter-name>  
    <filter-class>  
       org.apache.struts2.dispatcher.FilterDispatcher   
    </filter-class>  
</filter>  
  
<filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>

在页面中引用:

<%@ taglib prefix="s" uri="/struts-tags"%>  

由于在使用的web应用中一些特殊应用的关系,web.xml的配置改为:

<filter>  
  <filter-name>struts2</filter-name>  
    <filter-class>  
       org.apache.struts2.dispatcher.FilterDispatcher   
    </filter-class>  
</filter>  
<taglib>  
  <taglib-uri>struts-tags</taglib-uri>  
  <taglib-location>/WEB-INF/struts2-core-2.0.11.jar</taglib-location>  
 </taglib>  
  
<filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*.action</url-pattern>  
</filter-mapping>  

让sturts过滤器只接受后缀名为action的请求,并把struts标签配置到web.xml文件。  

但在使用中,直接访问index.jsp,出现异常:

The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Strut  
s tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher n  
eeded for this tag. - [unknown location] 

在struts2中不能直接使用jsp,引用struts2的标签么?是否有解决的方法?

找到解决方法了,其实只要再加一个过滤设置就可以了:

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