gpt4 book ai didi

java - JSF 2.0 View 范围不工作

转载 作者:行者123 更新时间:2023-11-29 03:43:38 25 4
gpt4 key购买 nike

我在我的应用程序中使用 PrimeFaces,其中我有一个填充了数据的数据表。我还有一个编辑命令按钮。

现在我想打开一个新的 JSF 页面。这样做的操作绑定(bind)到 View 范围内的支持 bean。在操作方法中,我可以访问 bean 的值,但在新的 JSF 页面上,我无法再访问此 bean 的任何值。

这是我的代码:

<p:commandLink title="Edit" id="editBtn" action="#{personRegisterController.selectPerson}">
<f:setPropertyActionListener value="#{person}" target="#{personRegisterController.personBean}"/>
</p:commandLink>

最佳答案

JSF 中的 View 范围是仅包含单个 View (页面)的范围。因此,只要您回发到同一个 View ,您就会保留 View 作用域 bean 的数据。

但是,一旦您导航到一个新 View ,一个新的 View 范围就会开始。换句话说,您不能使用 View 范围在 View 之间(在对不同页面的请求之间)传输数据。

有关如何执行此传输的一种可能解决方案,请参阅此答案:p:commandButton doesn't execute f:setPropertyActionListener in JSF 2

顺便说一句,请注意,setPropertyActionListener 对于您在这里所做的事情不是必需的。您可以将数据直接提供给您的操作方法:

<p:commandLink action="#{personRegisterController.selectPerson(person)}"/>

关于java - JSF 2.0 View 范围不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com