免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3105 | 回复: 0
打印 上一主题 下一主题

urlrewriter 和 Struts2 整合 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-13 20:53 |只看该作者 |倒序浏览
准备工作先要有2个配置文件+1个jar包
配置文件1:urlrewrite.xml
写道







^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?.html$
/$1.action


这是一个通用请求url rewrite
^/([a-z0-9A-Z_]+)/([a-z0-9A-Z_]+)/!([a-z0-9A-Z_]+).html$
/$2.action?id=$1

-->


^/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
图片不显示,页面加入下面代码
      
   ">

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/110188/showart_2148017.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP