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

How to validate a required field? Throw exception in setter?

是否可以从托管 bean 中抛出异常 setter?

例如,我会创建一个 setter,例如:

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

    name=_name;
}

如果我现在尝试提交一个名称字段为空的表单,它应该显示 "Name is empty!"。

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

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

像这样:

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