使用支持bean方法输入文本的验证器不起作用



我有一个带有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自定义验证器不会被调用

相关内容

  • 没有找到相关文章

最新更新