繁体   English   中英

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

[英]How can i Use Tuckey URL Rewrite with ADF Essentials?

在ADF 11.1.2.4(JSF2.0 -GF 3.1.2)上开发,期望为漂亮的url实现urlrewrite。 添加到web.xml中:

    <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如

<rule>
    <from casesensitive="false">myTest</from>
    <use-context>true</use-context>
    <to>/faces/admin/admin.jspx</to>
</rule>

admin.jspx包含TF。 当我部署项目并请求主机名:9999 / mytest重定向正确的页面(主机名:9999 / faces / admin / admin.jspx)时,页面呈现没有问题。 但是我的实际目标是让供应商看到真正的URL。 但是我可以在浏览器上看到真实的网址,例如:(... jspx?_adf.ctrl-state = 4avl71cil_1)那么,我想念的是什么? 顺便说说; 当我输入被屏蔽的网址时,它会重定向我的真实页面,因此效果很好。 但似乎是浏览器地址栏上的真实网址。 如果我只在'faces'上下文之外使用html页面,则urlrewrite可以按预期工作。 Thx,brgds

由于具有Tucky URL Rewriting过滤器,因此ADF附带了其JSF View Handler,并且在ADF 12.1.x之前,除非使用Apache Server Rewrites或Oracle HTTP Server,否则您将无法转发URL,因为ADF内部过滤器看起来像对于_adf.ctrl状态,如果找不到它,则会将其附加到显示页面实际URL的URL上。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM