gpt4 book ai didi

validation - 从 go through validation 获取空字符串

转载 作者:行者123 更新时间:2023-12-05 00:38:49 24 4
gpt4 key购买 nike

有没有办法让jsf验证器处理空字符串?
我有一个用于所有 inputTexts 的自定义验证器。
而不是必须实现“required”标签,我想让客户处理程序处理空字符串并在支持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 中。

此外,验证器处理程序将“组件”作为参数,这意味着我可以获取它的 ID 并查看 实时如果需要。 (可能并不总是需要相同的组件)。

如果我使用 required="#{bean.requireCheck}" (例如)我可以以某种方式获取调用它的组件吗?

最佳答案

JSF 1.x 默认不会在空字段上触发验证器。为此,required必须使用属性。如果您的具体问题是必须设置第二个字段 required每当填写第一个字段时,您就应该在 required 中进行检查。属性。

<h:inputText value="#{bean.input1}" binding="#{input1}" />
<h:inputText value="#{bean.input2}" required="#{not empty input1.value}" />

如果这不是功能要求,那么您应该在问题中对此进行更多说明,以便可以给出更合适的答案。

更新 : 所以你想从模型上控制需求?添加 Map<String, Boolean>到 bean 如下:
private Map<String, Boolean> required;

public Bean() {
required = new HashMap<String, Boolean>();
required.put("foo", true);
required.put("bar", false); // false entries are by the way not necessary.
// ...
}

public Map<String, Boolean> getRequired() {
return required;
}

使用方法如下:
<h:inputText id="foo" required="#{bean.required['foo']}" />
<h:inputText id="bar" required="#{bean.required['bar']}" />

如果您使用的是 JSF 2.0,则可以按如下方式进行
<h:inputText id="foo" required="#{bean.required[component.id]}" />
<h:inputText id="bar" required="#{bean.required[component.id]}" />

与具体问题无关,放置 <h:message> 是非法的作为 <h:inputText> 的 child .将它们并排放置。

关于validation - 从 <h :inputText> go through validation 获取空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com