【问题标题】:tuckey outbound rules was not worktuckey 出站规则不起作用
【发布时间】:2014-01-21 23:23:15
【问题描述】:

我在 Tuckey URL 出站规则方面遇到问题。 我们将 Tuckey 与 Struts2 一起使用。

出站规则:

    <outbound-rule>
    <from>^/articleList\?category=(\d*)&amp;page=(\d*)(;jsessionid=.*)?$</from>
    <to last="true">/list/$1/$2</to>
</outbound-rule>

JSP:

<a href="<s:url value="/articleList" ><s:param name="category"
value="#article.category" /><s:param name="page" value="1" /></s:url>"    target="_blank[articlelist]</a>

虽然它说正在处理出站规则,但它并没有转发到我的 URL。 在url-rewritestatus 中,它显示了我所有的规则,但不显示匹配的规则。 调试日志:

org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: processing outbound url for /articleList?category=3&amp;page=1
org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Outbound Rule 0 run called with /articleList?category=3&amp;page=1
org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Outbound Rule 1 run called with /articleList?category=3&amp;page=1
org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Outbound Rule 2 run called with /articleList?category=3&amp;page=1
org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Outbound Rule 3 run called with /articleList?category=3&amp;page=1
org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Outbound Rule 4 run called with /articleList?category=3&amp;page=1

调试我看到的源代码

url:/articleList?category=1&amp;page=1
pattern:^/articleList\?category=(\d*)&page=(\d*)(;jsessionid=.*)?$

我做错了什么?

evn:struts2 + spring3 jetty

【问题讨论】:

    标签: java regex url-rewriting struts2 tuckey-urlrewrite-filter


    【解决方案1】:

    您在 url 中转义了 &amp;amp; 符号,您在源代码中看到它是 &amp;amp;。这不允许模式匹配 url。尝试更改模式以匹配转义和未转义的 &。

    <from>^/articleList\?category=(\d*)(\&|&amp;){1}page=(\d*)(;jsessionid=.*)?$</from>
    

    【讨论】:

    • 将选项 [escapeAmp = "false"] 添加到 s:url 并修复它
    猜你喜欢
    • 2017-11-27
    • 2011-01-22
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2023-03-03
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多