方法调用后更新 URL 个参数
Update URL parameters after method call
这应该很简单,但我正在查看其他问题,但找不到适合我的问题的正确答案。
我有一个调用方法的 JSF 页面 myController.load()
:
<f:metadata>
<f:viewParam name="id" value="#{myController.id}" required="false"/>
<f:viewAction action="#{myController.load()}" />
此方法将生成一个 id
并放置在 myController.id
中(如果最初未使用此类参数调用该页面)。我的问题是如何使导航栏上的 URL 反映此更改,即在 URL 中插入此新参数。基本上:
--> 浏览至 myPage.xhtml
--> 调用 myController.load()
设置 myController.id
= 1
-->反映在URLmyPage.xhtml?id=1
。理想情况下无需重新加载页面
您将需要阅读一些有关 PRG 的内容 (Post/Redirect/Get)。这是一个好的开始。
https://mobiarch.wordpress.com/2012/08/09/doing-post-redirect-get-pattern-in-jsf-2/
您将希望您的原始 JSF link 调用一个 ActionListener,该 ActionListener 将创建对 myController 的作用域引用并在那里将 id 属性设置为 1...然后您可以使用 PRG 重定向到您的页面. PRG 将根据您的需要使用您的 bean 的值正确构建新的 URL。
这个 ActionListener 方法非常简单,只是为了帮助说明...
// my ActionListener method
public String goToMyPage() {
myController.setId(1); // assuming myController is declared in scope.
return "myPage?faces-redirect=true&includeViewParams=true";
}
希望这有助于您入门。
这应该很简单,但我正在查看其他问题,但找不到适合我的问题的正确答案。
我有一个调用方法的 JSF 页面 myController.load()
:
<f:metadata>
<f:viewParam name="id" value="#{myController.id}" required="false"/>
<f:viewAction action="#{myController.load()}" />
此方法将生成一个 id
并放置在 myController.id
中(如果最初未使用此类参数调用该页面)。我的问题是如何使导航栏上的 URL 反映此更改,即在 URL 中插入此新参数。基本上:
--> 浏览至 myPage.xhtml
--> 调用 myController.load()
设置 myController.id
= 1
-->反映在URLmyPage.xhtml?id=1
。理想情况下无需重新加载页面
您将需要阅读一些有关 PRG 的内容 (Post/Redirect/Get)。这是一个好的开始。
https://mobiarch.wordpress.com/2012/08/09/doing-post-redirect-get-pattern-in-jsf-2/
您将希望您的原始 JSF link 调用一个 ActionListener,该 ActionListener 将创建对 myController 的作用域引用并在那里将 id 属性设置为 1...然后您可以使用 PRG 重定向到您的页面. PRG 将根据您的需要使用您的 bean 的值正确构建新的 URL。
这个 ActionListener 方法非常简单,只是为了帮助说明...
// my ActionListener method
public String goToMyPage() {
myController.setId(1); // assuming myController is declared in scope.
return "myPage?faces-redirect=true&includeViewParams=true";
}
希望这有助于您入门。