Jsf 2 禁用/启用primefaces组件

Jsf 2 禁用/启用primefaces组件,jsf-2,primefaces,Jsf 2,Primefaces,我想在从p:selectOneMenu中选择后禁用一些primefaces组件,但当我选择“无选择”选项时,它仍然处于禁用状态 <p:outputLabel value="Manager" style="color:white;font-weight: bold;" /> <p:selectOneMenu id="manager" value="#{employeeMB.selectedManager}" immediate="true"> <f:sele

我想在从
p:selectOneMenu
中选择后禁用一些primefaces组件,但当我选择“无选择”选项时,它仍然处于禁用状态

<p:outputLabel value="Manager" style="color:white;font-weight: bold;" />
<p:selectOneMenu id="manager" value="#{employeeMB.selectedManager}" immediate="true">
     <f:selectItem itemLabel="Selectionner..." noSelectionOption="true"/>
     <f:selectItems value="#{employeeMB.managers}"  />
     <p:ajax update="managerSelect role"  />
</p:selectOneMenu>

<p:outputLabel value="Est un Manager" 
               style="color:white;font-weight: bold;" />
<p:selectBooleanCheckbox id="managerSelect" 
                         value="#{employeeMB.employee.isManager}" 
                         disabled="#{employeeMB.selectedManager != null}" />

<p:outputLabel for="role" value="Role Utilisateur" style="color:white;font-weight: bold;" />
<p:selectManyCheckbox id="role" value="#{employeeMB.selectedRoles}">
    <f:selectItem itemLabel="Employée" itemValue="ROLE_EMPLOYEE" />
    <f:selectItem itemLabel="Manager" itemValue="ROLE_MANAGER" itemDisabled="#{employeeMB.selectedManager != null}"/>
    <f:selectItem itemLabel="RH" itemValue="ROLE_RH" itemDisabled="#{employeeMB.selectedManager != null}"/>
</p:selectManyCheckbox>

当更新的模型值不是
null
,而是空字符串时,可能会发生这种情况。您需要重新配置JSF,将提交的空字符串值解释为
null
,以避免模型通过
web.xml
中的以下条目被空字符串污染

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

javax.faces.explait_EMPTY_STRING_SUBMITTED_VALUES_为_NULL
真的
尽管如此,最好使用
{notempty bean.property}
而不是
{bean.property!=null}
。它还包括空字符串


与具体问题无关
noselection选项
在那里是无用的。仔细阅读以理解它。我还怀疑您是否理解此处的
立即
属性。摆脱它。多亏了ajax的魔力,它在JSF2.x世界中不再有任何合理的价值