【发布时间】:2011-09-08 16:52:20
【问题描述】:
我使用这个类对输入字段进行验证:
@ManagedBean
@RequestScoped
public class UserInputValidation {
public void validateCity(FacesContext context, UIComponent validate,
Object value) {
String inputFromField = (String) value;
if (inputFromField.equals("") || inputFromField.equals(" ")) {
FacesMessage msg = new FacesMessage("Odaberite grad");
throw new ValidatorException(msg);
}
}
//...
}
这是保存输入值的托管 bean:
@ManagedBean
@RequestScoped
public class InputController {
//Attributes
private String city;
//Get set methods
为什么当我创建一个 selectOneComponent 并选择第一个组件(空白输入)时,没有显示验证消息?
<h:selectOneMenu id="city" value="#{inputController .city}">
<f:selectItems value="#{searchController.formatedCities()}" validator="#{userInputValidation.validateCity}"/>
</h:selectOneMenu>
<span style="color: red;"><b><h:message for="city"
showDetail="true" /></b></span>
selectOneMenu 中的第一个字段是空白(formatedCitiesMethod() 返回一个“”作为第一个元素),那么如果在选择空白的情况下单击表单提交按钮,为什么不显示验证消息?
【问题讨论】:
标签: java validation jsf jsf-2 java-ee-6