【发布时间】:2012-05-27 12:35:26
【问题描述】:
我有一个简单的请求范围实体/pojo,它有一个枚举和一个字符串作为属性。
public Enum Type
{
None,
Email,
Fax;
}
@ManagedBean(name = "testEntity")
@RequestScoped
public class TestEntity
{
private Type type; //Default = None
private String address;
//getter and setter
}
此枚举有一个“电子邮件”字段,用于标识具有相关地址的电子邮件地址。
在 JSF 中,我现在想要启用/禁用与 SelectOneMenu 中当前选择的类型有关的地址 InputText 字段的验证器。
<h:form id="formId">
<p:selectOneMenu id="type" value="#{testEntity.type}>
<p:ajax event="change" update=":formId:address"/>
<f:selectItem itemLabel="E-mail" itemValue="Email"/>
<f:selectItem itemLabel="Fax" itemValue="Fax"/>
</p:selectOneMenu>
<p:inputText id="address" value="#{testEntity.address}">
<f:validator validatorId="emailValidator" disabled="#{testEntity.type != 'Email'}"/>
</p:inputText>
<!-- button to call bean method with testEntity as param -->
</h:form>
validator is never active 不起作用,但 ajax 调用正在工作,因为我可以在其他字段中看到更改值。
【问题讨论】:
-
顺便说一句,这对于 OmniFaces 来说是一个有趣的想法。这不是一个不常见的要求。
-
不错的项目,稍后会看看它的展示。
标签: ajax jsf validation