如何验证必填字段?在setter中抛出异常?

时间:2015-03-30 15:41:38

标签: validation jsf setter managed-bean

是否可以从托管bean设置器中抛出异常?

例如,我会创建一个像:

这样的setter
public void setName(String _name) throws Exception{
    if(_name.compareTo("")==0)
        throw new Exception("Name is empty!");

    name=_name;
}

如果我现在尝试提交一个带有空名称字段的表单,则应显示“名称为空!”。

我知道我可以在我的表单的动作方法中处理这个问题,但上面的解决方案对我来说似乎更好。

1 个答案:

答案 0 :(得分:3)

您应该使用JSF内置验证工具。在您的情况下,您最好使用requiredrequiredMessage属性。

这样的事情:

<h:inputText id="name" value="#{myBean.name}" required="true" 
    requiredMessage="Name is empty!"/>
<h:message for="name" />