`
忧里修斯
  • 浏览: 425992 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

struts2+urlrewrite

    博客分类:
  • SSH
阅读更多

刚开始学习urlrewrite filter,碰到一些问题,我希望在工程中不在浏览器中显示出action?XX=XX这样的url,一律都改成xxx/xxx这样的形式,在顺的时候算成功了,把/工程名/XXX映射成了login.action?aaa=XXX这样的形式,可是不能用forward的形式只能用redirect,改成forward以后明明/工程名/login.action有的,结果会报404找不到,如果改成/工程名/XXX.jsp却可以被访问到,因为我使用了struts2,心里在想是不是直接forward过去了而login.action没有被拦截到所以会说找不到,可是看网上很多例子里面也有XXX.do的这样形式,是不是在web.xml中过滤器的顺序有什么讲究呢?一直没有弄清在from和to里的默认路径,在from里如果直接用/就是在工程下,不用再加工程名了,可是在to里,如果用redirect就是要加上/工程名,而用forward却不用,否则会显示出两个工程名来,现在把配置文件贴一下:
<rule>
<from>^/(\w+)$</from>
<to >/Login.action?username=$1</to>
</rule>
这样是会报找不到的,如果将to改写成这样
<to type="redirect">/工程名/Login.action?username=$1</to>
这样就是可以访问的,红色的是改动的地方,如果我要使用forward有办法吗?

 

 

解决办法:

在web.xml中配置struts2和urlrewrite时,加上

 

<dispatcher>REQUEST</dispatcher>  
<dispatcher>FORWARD</dispatcher>

 

最后代码片段为:

 

<filter-mapping>
  <filter-name>UrlRewriteFilter</filter-name>
  <url-pattern>/*</url-pattern>
  <dispatcher>REQUEST</dispatcher> 
        <dispatcher>FORWARD</dispatcher>
 </filter-mapping>

 

<filter-mapping>
  <filter-name>Struts2</filter-name>
  <url-pattern>/*</url-pattern>
  <dispatcher>REQUEST</dispatcher>    
        <dispatcher>FORWARD</dispatcher> 
 </filter-mapping>

分享到:
评论
1 楼 ocaicai 2011-12-14  
圣人啊,救星啊,我被这个问题折磨得蛋疼!对了,我在google中关键字:urlrewrite forward action 到达你这儿的

相关推荐

    struts2+spring3+hibernate4+urlrewrite

    本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    包括: +----doc +-----jeecms基础概念.txt ...• 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite • 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    Struts2下使用urlReWrite的最简实例(MyEclipse工程)

    NULL 博文链接:https://stride.iteye.com/blog/723324

    jeecmsv2.3.2 内容管理系统 (hibernate3+struts2+spring2+freemarker)

    JEECMS是JavaEE版网站管理系统(Java Enterprise ...· 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    ssh2中的urlrewrite和Struts2的生成静态页面

    ssh2中的urlrewrite和Struts2的生成静态页面

    使用urlrewrite重写struts2的action

    NULL 博文链接:https://namas.iteye.com/blog/1130854

    UrlRewrite例子

    UrlRewrite例子,里面有一些可能出错的提示,看完后你基本上就会咯!

    jeecms-src.rar_com.jeec_freemarker_freemarker struts2_单点登录

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    urlrewrite静态页面的使用例子

    一个很简单的使用urlrewrite实现静态页面的实现,只要把该文件解压后直接导入到eclipse里就行了,或者直接把WEB下的文件拷到TOMCAT的ROOT下去,即可运行。

    struts1.2与urlrewritefilter 的整合

    看到网上只有struts2的例子,正好项目中遇到这个问题,于是就写了这么个例子。不足之处请多多指教!

    Url Rewrite Filter实现页面伪静态化,简单实例及步骤

    UrlRewrite,在创建的时候,选择勾选“Add JSTL libraries to WEB-INF/lib folder ”(注:因为项目中会用到jstl 核心标签库),然后再把urlrewrite-2.6.0.jar导入到项目Bulid Path路径下,最后再加入struts框架。

    JEECMS3.0.4使用教程

    在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录。

    JEEcms目前国内的cms领跑者

    JEECSM是JavaEE版网站管理系统(Java Enterprise Edition ...·采用伪静态页面技术,可自定义路径结构,无需urlrewrite ·轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登陆!

    JEECMS v2.3.2 正式版用源码

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    jeecms-2.4.2(源码+安装包)

    JEECMS是国内Java版开源网站内容管理系统(java cms、jsp ...· 采用伪静态页面技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    伪静态_URLRewrite实例解析

    伪静态_URLRewrite实例解析,啥都不说了,详细的全程解析,菜鸟都能看懂……

    jeecms3.0.4

    在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 ,采用伪静态页面技术,可自定义路径结构,无需urlrewrite ,轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录。

    urlrewrite(把jsp变成HTML).(个人总结综合教程,适合新入门的朋友阅读)

    urlrewrite(把jsp变成HTML).

    jee cms学习文档

    · 采用伪静态页面缓存技术,管理方便,速度可与静态页面相媲美,用户自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    JEECMS v2.2 beta 贺岁版

    采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录 JEECMS v2.2 beta版对以下方面进行了更新: ·降低运行环境...

Global site tag (gtag.js) - Google Analytics