准备工作先要有2个配置文件+1个jar包
配置文件1:urlrewrite.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd"> <urlrewrite> <rule> <note> <!-- 这是一个通用请求url rewrite 将请求forword url加上".action"的处理器上。例: 请求 http://{domain}/user/login 将被forward到 http://{domain}/user/login.do 请求 http://{domain}/user/login/ 将被forward到 http://{domain}/user/login.do 请求 http://{domain}/user/logout/ 将被forward到 http://{domain}/user/logout.do --> </note> <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?.html$</from> <to type="forward">/$1.action</to> </rule> <!-- <rule> <note>这是一个通用请求url rewrite</note> <from>^/([a-z0-9A-Z_]+)/([a-z0-9A-Z_]+)/!([a-z0-9A-Z_]+).html$</from> <to type="forward">/$2.action?id=$1</to> </rule> --> <!-- Override default validation.js from WebWork --> <rule> <from>^/struts/css_xhtml/validation.js$</from> <to type="forward">/template/css_xhtml/validation.js</to> </rule> <!-- The following fixes a bug in XFire: --> <!-- http://jira.codehaus.org/browse/XFIRE-1089 --> <rule> <from>^//services/(.*)$</from> <to type="forward">/services/$1</to> </rule> </urlrewrite>
配置文件2:web.xml
在web.xml文件中插入一个filter
<!-- UrlRewriteFilter filter --> <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> <init-param> <param-name>logLevel</param-name> <param-value>WARN</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
1个jar包:urlrewritefilter-3.1.0.jar
项目中遇到的问题,不论怎么调整配置文件,urlrewrite都定位不到action请求
最后终于发现了:
项目中少配置了