由于其他系统需要实现URL重写技术,但是其他三方的重写技术,功能复杂,而我们系统只需要简单的url重写,就是转发到,struct2里面的,action,就可以了,所以,自己准备写个简单的filter,过滤到比如 /xx/* ,转发到固定的action,用服务器内部forward,转发,
在filter里面,实现 request.getRequestDispatcher("xx.action?id=$filename").forward(request,response),就可以但是,因为 struct2 默认主过滤器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,默认dispatcherTypes 类型为DispatcherType.REQUEST,不过滤 DispatcherType.FORWARD,所以,需要在web.xml里面添加:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
这样就可以实现在filter 转发到action了。