gpt4 book ai didi

java - 如何从一个托管 bean 中获取一个值并使用它在回发时设置另一个托管 bean 的属性

转载 作者:行者123 更新时间:2023-11-29 03:46:19 26 4
gpt4 key购买 nike

基本上我希望能够在页面加载时从一个托管 bean 中获取一个值,然后将原始值也回发到另一个 bean(表单中有其他值)...

这是我目前所拥有的一部分(这一切都在某种形式和工作中......)

 <h:selectOneMenu id="categoryMenu" required="true"
value="#{expense.categoryID}" label="Category" onchange="

var value = myJQuery(this).val().toLowerCase();
alert('You chose ' + value)">
<f:selectItem itemValue="0" itemLabel=""/>
<f:selectItem itemValue="1" itemLabel="Food"/>
<f:selectItem itemValue="2" itemLabel="Gas"/>
<f:selectItem itemValue="3" itemLabel="Clothing"/>
<f:selectItem itemValue="4" itemLabel="Recreation"/>
<f:selectItem itemValue="5" itemLabel="Other"/>

</h:selectOneMenu>
<h:message for="categoryMenu"/>
<h:outputLabel for="amount" value="Amount" styleClass="requiredLbl"/>
<h:inputText id="amount" value="#{expense.amount}" required="true" label="Amount"/>
<h:message for="amount"/>
<br/>
<p:commandButton id="btnSave" value="Save" action="#{expense.saveExpense}" ajax="false"/>
</h:panelGrid>

但我也想在回发中包含这个值(不必以隐藏形式但你明白我的意思)...

 <input type="hidden" value="#{loginController.userID}" id="hiddenCategory"/>

有什么想法吗?

最佳答案

其中一种方法是将其作为请求参数传递。

<p:commandButton id="btnSave" value="Save" action="#{expense.saveExpense}" ajax="false">
<f:param name="userID" value="#{loginController.userID}" />
</p:commandButton>

如果 #{expense} 是请求范围的,只需按如下方式设置:

@ManagedProperty("#{param.userID}")
private Long userID; // +setter

但是,您需要了解最终用户对该值具有完全控制权。如果这真的代表当前登录的用户,正如变量名所暗示的那样,那么您不应该通过表单提交来传递它。

假设 #{loginController} 是一个 session 范围的 bean,只需将它注入(inject)到 #{expense} bean 中,如下所示:

@ManagedProperty("#{loginController}")
private LoginController loginController; // +setter

@ManagedProperty("#{loginController.userID}")
private Long userID; // +setter

关于java - 如何从一个托管 bean 中获取一个值并使用它在回发时设置另一个托管 bean 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712015/

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