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.}”),我仍然没有得到任何错误。奇怪!