我试图了解如何使用此链接在JSF应用上执行PRG https://blogs.oracle.com/enterprisetechtips/entry/post_redirect_get_and_jsf 但不知怎的,我对三件事感到困惑。
在博客中,我从firebug看到它在渲染页面时发出了302和GET重定向,而不是PRG的POST方法。 博客中唯一的变化是bean作为作用域范围的请求范围。所以这个链接表明了这一点 我的所有托管bean都处于请求范围级别?我检查了我正在做的示例应用程序,并且我正在大量使用ViewScoped和SessionScope bean。
ViewParameters的用处是什么?不是一个安全问题,我猜我在网址上添加了更多的查询字符串参数? 我实际上找到了一个用例,我可以在哪里使用这样的功能。
如果我正在进行的事务不会做任何事务性质,例如ADD / EDIT / DELETE,那么仅仅使用作为POST请求的JSF导航仍然是一个好习惯吗?我只是想导航到一个新页面。
由于
答案 0 :(得分:1)
这个链接是否表明我所有的托管bean都处于Request Scope级别?我检查了我正在做的示例应用程序,并且我正在大量使用ViewScoped和SessionScope bean。
bean的范围对PRG本身无关紧要。它只对bean持有的数据的生命周期很重要。另请参阅How to choose the right bean scope?
ViewParameters的用处是什么?不是一个安全问题,我猜我在网址上添加了更多的查询字符串参数?我实际上找到了一个用例,我可以在哪里使用这样的功能。
includeViewParams
仅包含您在<f:metadata><f:viewParam>
中手动指定的参数。它不包括所有原始查询参数。这对于PRG本身来说不是必需的。是否使用取决于具体的功能要求。本文只是说明可能将所有视图参数复制到重定向URL中,这对于某些功能需求可能是有用/必需的。另请参阅What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?
我只想导航到新页面。
使用<h:link>
代替<h:commandLink>
。
<h:link value="Go to next.xhxml" outcome="next" />