inputText と submit ボタンの 3 つのラジオ ボタンがあります。特定のラジオが選択されたときに、送信時に入力テキストを検証したいだけです。ので、私は持っています
<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."));
}
}
これが機能しない原因の 1 つは、送信時にvalidateNumber(...)
ラジオ ボタンのセッター メソッドの前に が実行されることsetSelectedRadio(String selectedRadio)
です。したがって、このステートメントを引き起こす
if(selectedRadio.equals("Some Value"){
validate(selectedText);
}
正しく実行しないこと。この問題を回避する方法について何か考えはありますか?