struts 中使用 urlrewrite 怪异现象,高手请进!!!

happy_yls 2009-08-13 04:11:53
在struts中使用urlrewrite来进行url重写,其中一个<outbound-rule>很怪异,代码中
<html:link page="/bbs/topic.do" name="totalPage">
输出来总是
http://localhost:7001/bbs/topic.do?topicId=123&page=2
而正确结果应该是
http://localhost:7001/bbs/topic-123-2.html

如果代码中这样写
<html:link page="/bbs/topic.do?topicId=123&page=2">
的话能得到正确结果,可是topicId和page必须是参数形式传递过来,所以才会用到name="totalPage"
哪位高手知道是怎么回事呢?
小弟多谢了!!!


...全文
76 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
quxiuer 2009-08-14
  • 打赏
  • 举报
回复
那就再写一个不带参数的配置

<outbound-rule>
<from>/bbs/topic.do\?</from>
<to>bbs/topic.html </to>
</outbound-rule>
happy_yls 2009-08-14
  • 打赏
  • 举报
回复
没人知道吗???
xuexijava 2009-08-14
  • 打赏
  • 举报
回复
mark
happy_yls 2009-08-14
  • 打赏
  • 举报
回复
终于搞定了
把&作为普通字符串
<outbound-rule>
<from>/bbs/topic.do\?topicId=([a-zA-Z0-9]+)(.*)page=([0-9]+) </from>
<to>bbs/topic-$1-$2.html </to>
</outbound-rule>

这样就OK了
happy_yls 2009-08-14
  • 打赏
  • 举报
回复
也就是说我要把
http://localhost:7001/bbs/topic.do?topicId=123&page=2
转为
http://localhost:7001/bbs/topic-123-2.html
这个
<outbound-rule>
怎么写???
happy_yls 2009-08-14
  • 打赏
  • 举报
回复
谢谢5楼!
我刚才发现虽然当鼠标放到链接上时显示http://localhost:7001/bbs/topic.do?topicId=123&page=2 ,但网页源文件中生成的代码实际上是http://localhost:7001/bbs/topic.do?topicId=123&page=2 ,也就是说当有两个参数时,struts的<html:link>标签产生的“&”为转义字符&而不是“&”。直接写参数时<html:link page="/bbs/topic.do?topicId=123&page=2"> 不会转义,源文件里还是显示http://localhost:7001/bbs/topic.do?topicId=123&page=2 。为什么会这样呢?
问题已经找到了,但我不知道怎么处理。。。。。
happy_yls 2009-08-13
  • 打赏
  • 举报
回复
应该不是那里的问题吧?因为直接这样写可以得到正确结果
<html:link page="/bbs/topic.do?topicId=123&page=2">

我的urlrewrite 中配置如下(部分)

<outbound-rule>
<from>/bbs/topic.do\?topicId=([a-zA-Z0-9]+)&page=([0-9]+)</from>
<to>bbs/topic-$1-$2.html</to>
</outbound-rule>
好吃的松子 2009-08-13
  • 打赏
  • 举报
回复
试试转码一下&

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧