我有一個簡單的請求範圍實體/ pojo,它具有一個枚舉和一個字符串作爲屬性。通過ajax禁用驗證程序
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>
它是不工作的驗證是從來沒有主動但AJAX調用工作,因爲我可以看到在其他領域的變化值。
這就是OmniFaces的一個有趣想法。這不是一個不常見的要求。 – BalusC
不錯的項目,稍後會看看它的展示。 – djmj