我一直在尝试这个但没有成功,我想要的是当用户输入一些文本,即数字时,应该检查更改事件,如果错误,则应在h:message标签上显示消息
我的托管Bean名称:首先
**以下代码正在运行,但对于h:commandButton
// XHTML
<h:message for="sub" style="color:RED"></h:message>
//managedBean
private UIComponent input;
public UIComponent getInput() {
return input;
}
public void setInput(UIComponent input) {
this.input = input;
}
public void checkFirstLengthValue(){
if(someValue!=null && !someValue.equals("")){
int UserEnteredValue=Integer.parseInt(someValue);
if(UserEnteredValue>dataLength.getEndingLength() || UserEnteredValue<dataLength.getStartingLength()){
someValue="";
FacesMessage message = new FacesMessage("Invalid length");
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(input.getClientId(context), message);
}
}
}
但我想要这样的东西
//XHTML
<h:inputText id="firstlength" binding="#{first.input}" validator="#{first.checkFirstLengthValue()}" onchange="#{first.checkFirstLengthValue()}" value="#{first.someValue}">
<f:ajax> event="change" listener="#{first.checkFirstLengthValue()}" </f:ajax>
</h:inputText>
<h:message for="firstlength" style="color:RED"></h:message>
checkFirstLengthValue()方法与上面所述相同。 所以这可以做到,我正在努力,但它不起作用。如果有其他方法让我知道我想调用managed-Bean,那个方法将调用inputText的h:消息