我有三个单选按钮,一个 inputText 和一个提交按钮。我只想在选择某个收音机时验证提交时的输入文本。所以我有
<h:inputText validator="#{myBean.validateNumber}" ... />
在我的豆子里,我有
public void validateNumber(FacesContext context, UIComponent component,
Object value) throws ValidatorException{
if(selectedRadio.equals("Some Value"){
validate(selectedText);
}
}
public void validate(String number){
if (number != null && !number.isEmpty()) {
try {
Integer.parseInt(number);
} catch (NumberFormatException ex) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Error", "Not a number."));
}
} else {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Error", "Value is required."));
}
}
使这不起作用的一件事是,当我提交时,validateNumber(...)
在我的单选按钮的 setter 方法之前运行setSelectedRadio(String selectedRadio)
。因此造成这种说法
if(selectedRadio.equals("Some Value"){
validate(selectedText);
}
不能正确执行。关于如何解决这个问题的任何想法?