今天在做urlrewritefilter和struts2整合,遇到一个奇怪的问题:url已经重写之后就没反应了,提示找不到Action,但是换其它的:如html,jsp就可以.
没办法,开启百度来找,对于遇到问题,我一向把自己看到很笨,个人认为,我遇到的问题,一定会有前人遇到。
在蜘蛛网爬上好久,终于找到了解决办法,感谢各位网友的解答.
原来问题去在filter的响应方式上,servelt2.4给filter定义了4种过滤方式,用"<dispatcher>" 来标识,REQUEST,FORWARD,INCLUDE,ERROR,默认是REQUEST
urlrewrite默认重写URL之后用的是Forward方式流向下一个Filter。
这样就出现在上述问题,我要的你不给我,我当然不处理啊;
解决方案:
解决之后,又仔细想了一下,这外标签为什么要在2.4加入,个人理解:可以提高过滤器的效率,可以让filter只处理他需要关心的Servlet,如例:<dispatcher>FORWARD</dispatcher>这样标识,这个过滤器就只处理通过forward传出来的请求,其它 的一律不管