`
xlaohe1
  • 浏览: 128754 次
  • 性别: Icon_minigender_1
  • 来自: 来处
社区版块
存档分类
最新评论

使用urlrewrite重写struts2的action

阅读更多
首先呢是导入jar包,这个jar我是找很久了,别人给的链接我访问不到,就csdn上有。可是呢,csdn下东西要积分,你懂得。
下面给了一个jar和xml文件。
首先修改web.xml:
 <!-- ===================== --> 
    <filter>  
        <filter-name>UrlRewriteFilter</filter-name>  
        <filter-class>  
            org.tuckey.web.filters.urlrewrite.UrlRewriteFilter  
        </filter-class>  
    </filter>    
    
    <filter-mapping>  
        <filter-name>UrlRewriteFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
 <!-- ===================== --> 

加入上面那句。顺序为urlrewrite--struts-cleanup--struts
在struts-mapping配置这个属性
<dispatcher>FORWARD</dispatcher>

然后是urlrewrite.xml:
<rule>
		<from>/1.html</from>
		<to type="forward">/manage/BlockManage_findBlockList.do</to>
	</rule>
	<rule>
		<from>/t/(\d+)/([a-z]+).HTML$</from>
		<to type="forward">%{context-path}/manage/HospitalManage_toUpdateHospital.do?id=$1&amp;name=$2</to>
	</rule>

只给出2个例子。
其中XXX.do就是访问的action...$1是第一个参数,$2是第二个参数....
&符号要转成&amp;别忘了;号
上面的()括号里面就是匹配参数的正则
<form></form>之间是自定义的url
<to></to>之间是实际url.
如果要想地址栏显示自定义的url就在to标签加入type="forward"属性
对应的链接地址
<a href="t/${item.id}/${item.name }.HTML" >更新</a>


分享到:
评论
4 楼 ghyg525 2014-06-17  
改成forward 打开就提示action找不到 404错误

可能是因为struts没有拦截forward请求引起的

在struts的filter-mapping下添加<dispatcher>FORWARD</dispatcher>

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>
3 楼 w156445045 2013-01-15  
xlaohe1 写道
你访问这个我想也是404吧,instrument/queryAction.action?id=123

这样试试。
<rule>
		<from>/query([0-9]+)</from>
		<to type="forward">/instrument/queryAction.action?id=$1
            </to>
	</rule>







已经解决了,改下web.xml配置 增加dispatch
2 楼 xlaohe1 2013-01-15  
你访问这个我想也是404吧,instrument/queryAction.action?id=123

这样试试。
<rule>
		<from>/query([0-9]+)</from>
		<to type="forward">/instrument/queryAction.action?id=$1
            </to>
	</rule>






1 楼 w156445045 2013-01-14  
博主,您好,请问下,为什么我在
<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>

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


加了之后,访问就提示action找不到了。

我直接修改 urlrewrite.xml

<rule>
		<from>/query([0-9]+)</from>
		<to type="forward">instrument/queryAction.action?id=$1
            </to>
	</rule>




改成forward 打开就提示action找不到 404错误啊,请问怎么解决,谢谢。

相关推荐

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

    例如,将上面的URL从`/struts2urlrewrite/welcome.action`重写为`/welcome`: ```xml &lt;from&gt;/welcome &lt;to type="forward"&gt;/struts2urlrewrite/welcome.action ``` 这条规则会将所有匹配`/welcome`的请求...

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

    在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...

    UrlRewrite例子

    UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...

    struts2中实现URL重写

    在Struts2中,我们可以使用Tuckey的URLRewriteFilter来实现URL重写。这是一个开源的过滤器,它可以灵活地配置以满足不同的重写需求。以下是一些基本步骤: 1. **添加依赖**:在项目的pom.xml文件中,引入...

    java urlrewrite解决默认页问题

    为了实现URL重写功能,我们需要在`web.xml`中配置URL Rewrite Filter,并在`urlrewrite.xml`中定义重写规则。 **1. `web.xml` 配置:** ```xml &lt;filter-name&gt;UrlRewriteFilter &lt;filter-class&gt;org.tuckey.web....

    struts1.2与urlrewritefilter 的整合

    3. **编写urlrewrite.xml**:这个文件是URLRewriteFilter的核心,定义了一系列的规则。例如,可以创建一条规则,将所有以`.action`结尾的请求重写为去掉.action后缀的形式。规则的基本结构包括`&lt;rule&gt;`元素,其中...

    struts2改写url后缀demo

    总结,通过引入`Tuckey URL Rewrite Filter`,并在`urlrewrite.xml`中定义适当的规则,我们可以轻松地将Struts2的`.do`后缀重写为`.html`或其他形式。这不仅使URL更易于理解和记忆,也有助于提升用户体验和SEO效果。...

    urlrewrite静态页面的使用例子

    在本文中,我们将深入探讨如何使用`urlrewrite`框架来实现静态页面的转换,这是一个在J2EE环境中常用于URL重写和管理的工具。`urlrewrite`框架可以帮助开发者优化URL结构,使其更加用户友好,同时也便于搜索引擎优化...

    java struts如何隐藏提交后缀.action, .do.zip

    对于Struts2,可以使用`&lt;action&gt;`标签的`namespace`和`name`属性,结合`result`配置来构建无后缀的URL。 2. **使用Filter**: 可以创建一个Servlet Filter,拦截所有的HTTP请求,然后修改请求的URI,将`.action`或...

    伪静态URLRewrite实例解析

    在`WEB-INF`目录下新建一个名为`urlrewrite.xml`的文件,用于定义具体的URL重写规则。示例内容如下: ```xml &lt;!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" ...

    struts2 路径问题

    综上所述,Struts2的路径问题可能涉及多个层面,包括Action配置、结果类型设置、静态资源访问策略、插件和拦截器的使用,以及URL重写和部署配置等。解决这些问题通常需要对Struts2的工作原理有深入理解,并能熟练...

    伪静态_URLRewrite实例解析

    2. **UrlRewrite Filter**: UrlRewrite Filter是一个开源的URL重写过滤器,它可以对HTTP请求的URL进行修改,从而实现伪静态效果。它是基于Tuckey组织开发的,适用于Java Web应用。 3. **配置Web工程**: - 创建...

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

    为了定义具体的URL重写规则,我们需要创建一个`urlrewrite.xml`文件。该文件通常位于`WEB-INF`目录下,并且遵循特定的格式: ```xml &lt;!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" ...

    Struts1 ULR重写

    这个库提供了一套配置文件(如urlrewrite.xml)来定义URL重写规则,使得管理变得更加方便。 6. **测试与调试**:完成URL重写后,我们需要进行充分的测试,确保所有URL都能正确重写并执行相应的Action,同时不会影响...

    struts 2整合urlwrite 4 demo

    4. Struts 2 Action配置:在Struts 2的配置文件(如`struts.xml`)中,定义对应的Action,处理经过重写的请求。 ```xml &lt;action name="product" class="com.example.ProductAction"&gt; &lt;result name="success"&gt;/...

    java伪静态URL重写的方法

    2. **配置URL重写规则**:创建一个XML配置文件(如:urlrewrite.xml),用于定义URL重写规则。在这个文件中,你可以设定URL模式和它们对应的动态URL。例如: ```xml &lt;urlrewrite&gt; ^/index.html&lt;/from&gt; ...

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

    接下来是`urlrewrite.xml`配置文件,其中定义了具体的重写规则: ```xml ^/guide/([a-z]+)/([a-z]+)/([a-z]+)\.html$ &lt;to type="forward"&gt;/guide.do?module=$1&amp;submodule=$2&amp;action=$3 ``` 这个规则的...

    struts2.例子

    当使用Struts2的URL标签`&lt;s:url/&gt;`时,可以通过设置`includeParams`属性来控制URL中是否包含参数。例如: ```xml &lt;s:url action="example" includeParams="none"/&gt; ``` 这将生成一个不包含任何参数的URL。 ### ...

Global site tag (gtag.js) - Google Analytics