准备工作先要有2个配置文件+1个jar包
配置文件1:urlrewrite.xml
写道
"">
^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?.html$
/$1.action
^/struts/css_xhtml/validation.js$
/template/css_xhtml/validation.js
^//services/(.*)$
/services/$1
配置文件2:web.xml
在web.xml文件中插入一个filter
写道
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
logLevel
WARN
UrlRewriteFilter
/*
REQUEST
FORWARD
1个jar包:urlrewritefilter-3.1.0.jar
但是这样配置会遇到问题
因此需要在web.xml文件中添加一个东西,完整的filter链如下:
写道
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
logLevel
WARN
struts2-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUp
UrlRewriteFilter
/*
REQUEST
FORWARD
struts2-cleanup
/*
REQUEST
FORWARD
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
REQUEST
FORWARD
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
1、在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,道理很简单,要先调整字符集,再进入Action。
2、如果使用Urlrewrite,要指定filter-mapping的dispatcher方式,如下
Struts2
/*
REQUEST
FORWARD
3、在做上传文件的时候,要在web.xml中增加ActionContextCleanUp这个filter,如果不增加,会发生第一次上传取不到文件的情况
struts-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUp
struts-cleanup
/*
按照Struts2的API,filter的顺序是
struts-cleanup filter
SiteMesh filter
FilterDispatcher
图片不显示,页面加入下面代码
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
阅读(1015) | 评论(0) | 转发(0) |