Jsf 更改h时更新其他输入组件的值:选择一个菜单

Jsf 更改h时更新其他输入组件的值:选择一个菜单,jsf,selectonemenu,valuechangelistener,Jsf,Selectonemenu,Valuechangelistener,我有一个JSF2.2表单,其中包含一个、输入和4个按钮来调用CRUD方法。为了实现绑定,我使用了一个valueChangeListener,这样当我从中选择一个id时,我调用一个方法来更新链接到输入的对象。问题是输入值不会改变它们的值 形式 <h:selectOneMenu value="#{avocatBurController.numProf}" valueChangeListener="#{avocatBurController.handelValu

我有一个JSF2.2表单,其中包含一个
、输入和4个按钮来调用CRUD方法。为了实现绑定,我使用了一个
valueChangeListener
,这样当我从
中选择一个
id
时,我调用一个方法来更新链接到输入的对象。问题是输入值不会改变它们的值

形式

<h:selectOneMenu value="#{avocatBurController.numProf}"
                 valueChangeListener="#{avocatBurController.handelValueCahnge}" onchange="submit()">
    <f:selectItems value="#{avocatBurController.lstAvocatbureau}" var="avcBur"
                   itemValue="#{avcBur.avocat.numProf}" itemLabel="#{avcBur.avocat.nom}" />
</h:selectOneMenu>

<h:inputText value="#{avocatBurController.avc.prenom}" />
<h:inputText value="#{avocatBurController.avc.nom}" />
...

avc.getNom()
包含一个值,但输入不包含该值。

对于在当前输入发生变化时更新其他输入组件的值的工作而言,
valueChangeListener
是错误的工具。方法是有的,但它们是基于黑暗的JSF1.x时代发明的黑客/技巧,当时ajax还不存在

既然您已经使用了JSF2.x,那么就立即使用ajax

<h:selectOneMenu value="#{avocatBurController.numProf}">
    <f:selectItems value="#{avocatBurController.lstAvocatbureau}" var="avcBur"
                   itemValue="#{avcBur.avocat.numProf}" itemLabel="#{avcBur.avocat.nom}" />
    <f:ajax listener="#{avocatBurController.handleValueChange}" render="@form" />
</h:selectOneMenu>
另见:

对于在当前输入发生变化时更新其他输入组件值的工作而言,
valueChangeListener
是错误的工具。方法是有的,但它们是基于黑暗的JSF1.x时代发明的黑客/技巧,当时ajax还不存在

既然您已经使用了JSF2.x,那么就立即使用ajax

<h:selectOneMenu value="#{avocatBurController.numProf}">
    <f:selectItems value="#{avocatBurController.lstAvocatbureau}" var="avcBur"
                   itemValue="#{avcBur.avocat.numProf}" itemLabel="#{avcBur.avocat.nom}" />
    <f:ajax listener="#{avocatBurController.handleValueChange}" render="@form" />
</h:selectOneMenu>
另见:

对于在当前输入发生变化时更新其他输入组件值的工作而言,
valueChangeListener
是错误的工具。方法是有的,但它们是基于黑暗的JSF1.x时代发明的黑客/技巧,当时ajax还不存在

既然您已经使用了JSF2.x,那么就立即使用ajax

<h:selectOneMenu value="#{avocatBurController.numProf}">
    <f:selectItems value="#{avocatBurController.lstAvocatbureau}" var="avcBur"
                   itemValue="#{avcBur.avocat.numProf}" itemLabel="#{avcBur.avocat.nom}" />
    <f:ajax listener="#{avocatBurController.handleValueChange}" render="@form" />
</h:selectOneMenu>
另见:

对于在当前输入发生变化时更新其他输入组件值的工作而言,
valueChangeListener
是错误的工具。方法是有的,但它们是基于黑暗的JSF1.x时代发明的黑客/技巧,当时ajax还不存在

既然您已经使用了JSF2.x,那么就立即使用ajax

<h:selectOneMenu value="#{avocatBurController.numProf}">
    <f:selectItems value="#{avocatBurController.lstAvocatbureau}" var="avcBur"
                   itemValue="#{avcBur.avocat.numProf}" itemLabel="#{avcBur.avocat.nom}" />
    <f:ajax listener="#{avocatBurController.handleValueChange}" render="@form" />
</h:selectOneMenu>
另见: