【问题标题】:How to rewrite the URL如何重写 URL
【发布时间】:2011-03-04 10:10:07
【问题描述】:

我有一个使用 Seam 2.2、Richfaces 3.3、JBoss 5.1 构建的小型应用程序。

大部分页面导航将请求参数添加到目标URL。我想隐藏对正在使用应用程序的客户隐藏的参数(例如,我希望 URL 类似于“http://localhost:8080/books/Book.seam”。参数(userId、orderId 和 cmId)当前映射到后端 bean通过 Book.page.xml。

如何防止请求参数显示在浏览器 URL 中,因为它还允许客户操纵 URL。

我们确实查看了 seam URL 重写功能,它谈到了以 REST 格式操作主键 id,不知道如何以优雅的方式完成像上述用例这样更复杂的事情。

【问题讨论】:

  • 你疯了,使用了如此糟糕的臃肿技术。
  • 如果有帮助,请检查此jtict.com/blog/seam-form-url-rewriting
  • @hendry 我猜你对richfaces 和seam 有很多经验,可以称它们为“非常臃肿”?

标签: html jsf url-rewriting seam richfaces


【解决方案1】:

PrettyFaces 为 JSF 提供 url 重写。

但是,您不能“隐藏”GET 参数。除非您将它们设为 POST 参数。但是默认情况下所有提交都是在 JSF 中的 POST。

【讨论】:

  • 我们尝试过漂亮的面孔,tuckey url 重写过滤器,但无法让它在我们的环境中工作。我们使用了 seam 中的 web:rewrite-filter 并且在生成的 URL 方面取得了相当大的成功,但是当它位于由 EntityQuery 生成的列表页面上时,它变得非常复杂,其中您有排序参数,如 dir、logic、sort除了用于运行查询本身的查询参数之外,在我们的例子中这些参数很多。 下一条评论继续
  • 每当我们从通过 EntityQuery 生成的对象列表中加载特定对象时,我们都会传递页面参数(即,我们在 as:link 上有许多 f:param 声明指向实体本身,以及这些页面参数在 URL 中传递。您提到将其作为 POST 参数,我该怎么做?
  • PrettyFaces 应该允许您将 GET ?parameters 转换为 /path/parameters。它非常擅长这一点。或者你可以试试ocpsoft.com/rewrite
猜你喜欢
  • 2016-10-30
  • 1970-01-01
  • 2012-11-13
  • 2011-06-07
  • 1970-01-01
  • 2016-11-28
  • 2012-01-06
  • 2014-09-09
  • 1970-01-01
相关资源
最近更新 更多