【发布时间】:2011-07-12 16:14:36
【问题描述】:
有没有办法让 jsf 验证器处理空字符串? 我有所有 inputTexts 的自定义验证器。 而不是必须实现“必需”标签,我想让客户处理程序处理空字符串并在支持 bean 中确定该字段是否是必需的。
<h:inputText id="SSID_STR" styleClass="propertyInput" value="#{wifiDM.SSIDStr}" validator="#{wifiDM.validate}" >
<h:message for="SSID_STR" fatalClass="mandatoryFieldMissing" tooltip="true" />
</h:inputText>
如果我必须为我的应用程序中的每个输入文本添加所需的标签:
<h:inputText id="SSID_STR" styleClass="propertyInput" value="#{wifiDM.SSIDStr}" validator="#{wifiDM.validate}" required="#{wifiDM.isRequired} requiredMessage="*">
<h:message for="SSID_STR" fatalClass="mandatoryFieldMissing" tooltip="true" />
<f:attribute name="InputID" value="SSID_STR">
</h:inputText>
真是一团糟……
更新(澄清) 首先,使用 JSF 1.2。 每个字段在是否需要的意义上都是独立的,因此组件依赖性问题是无关紧要的。 我的目标是通过验证器传递空值,因此我不必将两个标签都添加到 inputText。
此外,Validator 处理程序获取“组件”作为参数,这意味着如果需要,我可以获取它的 ID 并实时查看。 (可能并不总是需要相同的组件)。
如果我使用required="#{bean.requireCheck}"(例如),我能以某种方式获取调用它的组件吗?
【问题讨论】:
-
Tnx。这实际上并没有解决我验证空字符串字段的问题。我找到了实现我自己的自定义输入字段的可能解决方案。我正在检查它,如果它有效,我会更新。
-
我不明白为什么它对你不起作用/
-
我遇到的问题是验证方法不会为空字符串执行。 @BalusC 解决方案也不能处理这种情况。
-
我怎么强调都不过分,在所有 JSF 问题中,请提及使用的 impl/version。缺少
jsf-2.0标记不一定足以表明您确实在使用 JSF 1.x。
标签: validation jsf