当<h:inputtext>的值更改时,在托管bean中设置值</h:inputtext>

时间:2012-10-08 17:47:53

标签: jsf-2

我有一个带<h:inputText>的JSF页面。我希望在值更改时将值绑定到<h:inputText>

豆:

@ManagedBean
@SessionScope
public class MyBean {

    private String in;
    //getter and setter

}

查看:

<h:inputText value="#{myBean.in}" />

1 个答案:

答案 0 :(得分:8)

只需添加<f:ajax>即可。它会在HTML DOM change事件发生时(即当字段被编辑然后模糊时)提交值。

<h:inputText value="#{myBean.in}">
    <f:ajax />
</h:inputText>

event属性已默认为valueChange,因此省略。其execute属性已默认为@this,因此省略。如果您想要在完成时更新其他组件,请设置render属性。 E.g。

<h:inputText value="#{myBean.in}">
    <f:ajax render="msg" />
</h:inputText>
<h:message id="msg" />

如果要在成功设置后调用侦听器,请设置listener属性:

<h:inputText value="#{myBean.in}">
    <f:ajax listener="#{myBean.changeIn}" />
</h:inputText>
public void changeIn() {
    System.out.println("in has been changed to " + in);
}

另见: