我有一个带有h:inputText
的表单,并且具有以支持bean方法名称作为值的属性验证器,示例:
h:inputText id="poolmanagementinput" validator="#{poolManager.validatePoolManagement}"
现在我在后台bean中有一个名为poolManager的方法,格式如下:
public void validatePoolManagement(final FacesContext context, final UIComponent component,
final Object value) {
... }
我期望在JSF周期的验证阶段调用该方法。但令我惊讶的是,这个方法没有被调用,验证也没有发生。谁能指出我遗漏的地方或指导我解决问题?
注意:就像旁注一样,输入被放在composite:实现中。
提前感谢。干杯!
如果您忘记在body和form之间添加这些属性,就像这样
<h:body>
<h:form>
<your ui item>
</h:form>
</h:body>
用它们包围UI属性。<h:form>
必须是所有可以参与HTML表单提交的JSF UI组件的父标记。
我遇到了同样的问题,这已经解决了这个问题。
我知道这是一个古老的问题,但是为有同样问题的人回答这个问题。
如果值为空,则JSF不会执行验证器。您需要使用required=true作为验证空白
当提交的输入值为null时,JSF自定义验证器不会被调用