【问题标题】:About PRG in JSF 2.0 and View Parameters关于 JSF 2.0 中的 PRG 和查看参数
【发布时间】:2012-04-25 07:18:14
【问题描述】:

我试图了解如何使用此链接在 JSF 应用程序上执行 PRG https://blogs.oracle.com/enterprisetechtips/entry/post_redirect_get_and_jsf 但不知何故,我对三个项目感到困惑。

  1. 从博客中,我从 firebug 看到它在呈现页面时发出 302 和 GET 重定向,而不是 PRG 的 POST 方法。 博客中唯一的变化是 bean 的范围从会话范围变为请求范围。所以这个链接是否表明 我所有的托管 bean 都处于请求范围级别?我检查了我正在做的示例应用程序,我大量使用 ViewScoped 和 SessionScope bean。

  2. ViewParameters 有什么用处?这不是一个安全问题,假设我在 url 中添加更多查询字符串参数? 我实际上正在寻找一个用例,说明在哪里可以使用此类功能。

  3. 如果我正在执行的事务不会执行任何事务性质,例如添加/编辑/删除,那么仅使用作为 POST 请求的 JSF 导航仍然是一个好习惯吗?我只是想导航到一个新页面。

谢谢

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    那么这个链接是否表明我所有的托管 bean 都处于请求范围级别?我检查了我正在做的示例应用程序,我大量使用 ViewScoped 和 SessionScope bean。

    bean 的作用域对于 PRG 本身并不重要。它只对 bean 保存的数据的生命周期很重要。另见How to choose the right bean scope?


    ViewParameters 有什么用处?这不是一个安全问题,假设我在 url 添加更多查询字符串参数?我实际上正在寻找一个用例,说明在哪里可以使用此类功能。

    includeViewParams 将仅包含您在&lt;f:metadata&gt;&lt;f:viewParam&gt; 中手动指定的参数。它不会包含所有个原始查询参数。这对于 PRG 本身不是必需的。是否使用它取决于具体的功能需求。这篇文章只是表明可以将所有视图参数复制到重定向 URL 中,这对于某些功能要求可能是有用的/强制性的。另见What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?


    我只是想导航到一个新页面。

    使用&lt;h:link&gt; 而不是&lt;h:commandLink&gt;

    <h:link value="Go to next.xhxml" outcome="next" />
    

    另见When should I use h:outputLink instead of h:commandLink?

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2012-01-18
      • 2011-06-01
      • 2011-11-11
      • 2011-07-21
      相关资源
      最近更新 更多