首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ADF Essentials中使用Tuckey URL重写?

如何在ADF Essentials中使用Tuckey URL重写?
EN

Stack Overflow用户
提问于 2014-07-07 16:49:05
回答 1查看 655关注 0票数 0

在ADF11.1.2.4(JSF2.0URL 3.1.2)上开发,希望实现漂亮urls的-GF重写。添加到web.xml中:

代码语言:javascript
复制
    <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
      <param-name>logLevel</param-name>
      <param-value>WARN</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

创建的urlrewrite.xml如下所示

代码语言:javascript
复制
<rule>
    <from casesensitive="false">myTest</from>
    <use-context>true</use-context>
    <to>/faces/admin/admin.jspx</to>
</rule>

admin.jspx包含TF。当我部署项目并请求时,hostname:9999/mytest重定向右侧页面(hostname:9999/faces/admin/admin.jspx),页面呈现没有问题。但我的实际目标是使供应永远看不到真正的url。但是我可以在浏览器上看到真正的url,比如:(...jspx?_adf.ctrl-state=4avl71sey_1)那么,我错过了什么?顺便说一句,当我输入屏蔽的url时,它会重定向我的真实页面,所以它工作得很好。但似乎是浏览器地址栏上的真实url。如果我只在“faces”上下文之外使用html页面,那么urlrewrite就会完全按照预期工作。Thx,brgds

EN

回答 1

Stack Overflow用户

发布于 2014-07-09 16:58:56

因为你有Tucky URL重写过滤器,ADF附带了它的JSF View Handler,在ADF 12.1.x之前,你将无法转发URL,除非你正在使用Apache Server重写或Oracle HTTP Server,因为ADF内部过滤器将查找_adf.ctrl-state,如果没有找到,它会将其附加到URL,这将显示页面的实际URL。

您可以尝试通过扩展ServletRequest来破解这些_adf.ctrl-state,并在询问_adf.ctrl-state时提供保存在会话中的最后一个值,但我向您保证这将对应用程序非常有害。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24606509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档