我有一个带有 <h:inputText>
的 JSF 页面.我想设置绑定(bind)到 <h:inputText>
的值当值改变时。
bean :
@ManagedBean
@SessionScope
public class MyBean {
private String in;
//getter and setter
}
看法:<h:inputText value="#{myBean.in}" />
如何使用 <f:ajax>
为了这?
最佳答案
只需嵌套 <f:ajax>
<h:inputText>
中的标签标签。
<h:inputText value="#{myBean.in}">
<f:ajax />
</h:inputText>
它会在 HTML DOM change
时提交值事件已发生(即当字段被编辑然后模糊时)。event
属性已经默认为 valueChange
,所以省略了。其execute
属性已经默认为 @this
,所以省略了。如果您想完整更新其他组件,请设置 render
属性。例如。<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);
}
也可以看看:关于jsf - 如何使用 <f :ajax> to set updated value in managed bean when value of <h:inputText> is changed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786851/