Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 使用支持bean方法的输入文本验证程序不工作_Jsf_Jsf 2 - Fatal编程技术网

Jsf 使用支持bean方法的输入文本验证程序不工作

Jsf 使用支持bean方法的输入文本验证程序不工作,jsf,jsf-2,Jsf,Jsf 2,我有一个带有h:inputText的表单,并且有一个属性验证器,其值为backingbean方法名称,例如: h:inputText id="poolmanagementinput" validator="#{poolManager.validatePoolManagement}" 现在,我在支持bean中有一个名为poolManager的方法,格式如下: public void validatePoolManagement(final FacesContext context, final

我有一个带有
h:inputText
的表单,并且有一个属性验证器,其值为backingbean方法名称,例如:

h:inputText id="poolmanagementinput" validator="#{poolManager.validatePoolManagement}"
现在,我在支持bean中有一个名为poolManager的方法,格式如下:

public void validatePoolManagement(final FacesContext context, final UIComponent component,
            final Object value) {
... }
我期望在JSF周期的验证阶段调用此方法。但令我惊讶的是,这个方法没有被调用,验证也没有发生。有没有人能指出遗漏的地方,或者给我指点解决办法

注意:正如旁注一样,输入放在composite:实现中

提前谢谢。
干杯

如果你忘记了在身体和身体之间添加这些属性,就像这样

<h:body>
<h:form>
    <your ui item>
</h:form>
</h:body>

sorround您的UI属性与他们<代码>必须是可以参与HTML表单提交的所有JSF UI组件的父标记


我也遇到过同样的问题,这已经解决了问题。

我知道这是一个老问题,但回答这个问题的人也有同样的问题

如果值为空,JSF不会执行验证器。 您需要使用required=true进行空白验证


更多参考资料

您是否暗示,如果将其放置在完全空白的页面上,而不使用任何模板/复合材料,则效果良好?请以MCVE格式提出问题。是的,当然。让我开始吧。但奇怪的是,validator=“#{poolManager.validatePoolManagement}”不起作用,似乎没有识别方法。但如果我将其更改为validator=“#{poolManager.}”,框架将识别它并抛出解析异常。即使我在EL中给出了错误的名称(例如:validator=“#{polMng.}”),我仍然没有得到任何错误。奇怪!