使用struts2开发时,我把struts2的过滤器改成如下:
<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>/controller/*</url-pattern>
</filter-mapping>
jsp页面中使用了struts2标签后为什么不能直接访问。知道的兄弟帮忙解释一下。

解决方案 »

  1.   

    <url-pattern>/controller/*</url-pattern>
    换成<url-pattern>/*.action<url-pattern>
      

  2.   

    <filter-mapping>   
        <filter-name>struts2</filter-name>   
        <url-pattern>*.jsp</url-pattern>   
    </filter-mapping>  
    加这个过滤
    原因是如果jsp不在/controller/下就不经过struts的过滤器,就没法解析。
      

  3.   


    <url-pattern>/controller/*</url-pattern>
    <url-pattern>*.action</url-pattern>貌似是这样的
      

  4.   

    同意楼上的说法。好久没动过struts2的人飘过
      

  5.   

    <url-pattern>/controller/*</url-pattern>struts2拦截器不认。改成
    <url-pattern>/*</url-pattern>
      

  6.   

    Struts2的拦截路径最好设置成/*,否则很多麻烦的, 启动错误倒是没遇到过,
    但是比如说像你在访问静态资源的时候都会出问题的
      

  7.   

    谢谢几位兄弟的指点,我已经知道怎么解决这个问题了,由于小弟才疏学浅,struts2的源码看不懂,不会英文又看不明白文档,有人可以告诉我为什么会出现这种情况吗?帮忙解释一下
      

  8.   


    原因是如果jsp不在/controller/下就不经过struts的过滤器,就没法解析。
    2楼的时候就说了呀
      

  9.   

    过滤器的解析是根据你设置的路径进行的,你设置为/controller/*。只能到controller/文件夹目录下去寻找文件了。找不到当然就报错。
      

  10.   

    同意楼上的说法
    直接
    <url-pattern>/*</url-pattern> 
    这样最简单,所有的都过滤了
    当然你如果只过滤部分的,那就将文件夹的名字写上啦