【发布时间】:2014-06-18 11:45:53
【问题描述】:
只有当UIInput 组件的值是null 或为空时,我才需要验证UIInput 组件所持有的值的长度。
长度验证器 - <f:validateLength> 应被跳过/绕过,以防值为 null 或为空。
我尝试了以下方法,但没有成功。
<p:inputTextarea id="address" autoResize="false" value="#{testManagedBean.address}" maxlength="1000" minQueryLength="10" cols="35" rows="7">
<f:validateLength minimum="5" maximum="1000" disabled="#{empty testManagedBean.address}"/>
</p:inputTextarea>
<p:message for="address" display="both" showSummary="false"/>
<p:commandButton value="Submit" actionListener="#{testManagedBean.action}"/>
豆子:
@ManagedBean
@ViewScoped
public final class TestManagedBean implements Serializable
{
private String address;
private static final long serialVersionUID = 1L;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public void action() {
System.out.println("action() called.");
}
}
此字段 - “地址”实际上是可选的,但如果某些用户提供输入,则它应包含至少五个字符的长度。
编辑:
当UIInput 组件具有空值或空值时,我正在使用disabled="#{empty param['form:address']}" 禁用验证器(无论如何都不会进一步挖掘更好的方法)。
【问题讨论】:
-
通过将 validateLength 设置为必填字段。您拥有的另一个选择是在您的操作方法中在服务器端验证这一点。
-
我希望 OmniFaces 应该有一些魔力 :)
-
OmniFaces?这和这有什么关系?
-
OmniFaces 中可能存在一些内置的验证器技巧 :)
标签: jsf primefaces jsf-2.2