【发布时间】:2011-11-18 13:49:37
【问题描述】:
当我尝试将自定义验证器应用于输入字段时遇到了问题:
我想使用由 bean 生成并绑定到 f:validator 标签的自定义验证器:
<f:validator binding="#{bean.myValidator}">
对应的bean方法如下:
public Validator getMyValidator(){
return new Validator(){...};
}
如果我在这样的输入标签内使用标签:
<h:input value="...">
<f:validator binding="#{bean.myValidator}" />
</h:input>
然后一切都按预期进行。
但是,如果我像这样反过来使用标签:
<f:validator binding="#{bean.myValidator}">
<h:input value="...">
</f:validator>
然后我得到一个 ServletException ("validatorID is null")。
这个异常的原因是什么?
还有,没看懂对应的f:validator tag spec:
如果此元素嵌套在具有其他 UIComponent 子级的 UIComponent 标记中,则验证器将自动添加到所有子组件以及这个子组件中。
我猜我的 f:validator 标记嵌套在 f:view 中,对吗? “对所有子组件”是什么意思?谁的子组件?
【问题讨论】:
标签: jsf