我在jsf中有一个表单,我已经创建了一个特殊的验证器类,它检查字段是否为:null,empty,valid,number等。如果输入无效,则该类会抛出一条带有消息的异常。问题是当我在输入字段中写字母时(输入应该是一个int!)我得到默认验证消息而不是自定义验证消息。如何禁用默认验证消息?
这是一个带有默认验证消息的图像:
JSF代码:
<h:form>
<h:inputText value="#{deleteEmployeeBean.employeeId}"
id="employeeId" name="employeeId">
<f:validator validatorId="idValidator" for="employeeId"></f:validator>
</h:inputText>
<h:message for="employeeId" style="color: red;"></h:message>
<h:commandButton action="#{deleteEmployeeBean.loadEmployee}"
value="#{content.searchButton}"></h:commandButton>
</h:form>
你可以使用validatorMessage
为你的f:validator
<h:inputText value="#{deleteEmployeeBean.employeeId}"
id="employeeId" name="employeeId" validatorMessage="your message">
<f:validator validatorId="idValidator" for="employeeId"></f:validator>
</h:inputText>
或者您可以使用它来让用户只插入数字
<h:inputText value="#{deleteEmployeeBean.employeeId}"
id="employeeId" name="employeeId" validatorMessage="your message"
onkeypress="if(event.which < 48 || event.which > 57 ) if(event.which != 8) return false;">
<f:validator validatorId="idValidator" for="employeeId"></f:validator>
</h:inputText>