如何验证必填字段?在 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 内置验证工具。在您的情况下,您最好使用 required
和 requiredMessage
属性。
像这样:
<h:inputText id="name" value="#{myBean.name}" required="true"
requiredMessage="Name is empty!"/>
<h:message for="name" />
是否可以从托管 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 内置验证工具。在您的情况下,您最好使用 required
和 requiredMessage
属性。
像这样:
<h:inputText id="name" value="#{myBean.name}" required="true"
requiredMessage="Name is empty!"/>
<h:message for="name" />