根据 p:inputText 的空值启用/禁用

enable / disable based on the null value for p:inputText

我想创建一个 JSF 应用程序。在应用程序中,用户将从数据库中搜索用户记录并在表单中设置值,然后提交表单。 我有一个小问题,我需要根据 p:inputText

的空值启用/禁用

这样,如果字段中没有设置任何值,用户将能够输入值。 如何实现?

<p:inputText id="firstName"  value="#{javaMB.infoEntity.firstName}"/>
<p:inputText id="lastName"  value="#{javaMB.infoEntity.lastName}"/>
<p:inputText id="age"  value="#{javaMB.infoEntity.age}"/>

this.infoEntity.setFirstName(view.getFirstName());
this.infoEntity.setLastName(view.getLastName());
this.infoEntity.setAge(view.getAge());

        DB 

        Mark   XYZ   45
        Sav    NULL  23
        NULL   Jones 33

如果我们设置第二行,则名字的 p:inputText 被禁用,姓氏的 p:inputText 被启用,年龄的 p:inputText 被禁用。 如果我们设置第三行,则启用名字的 p:inputText,禁用姓氏的 p:inputText,禁用年龄的 p:inputText


我试过的

使用 readonly="true" 无效,因为如果为其设置了空值,我需要输入 p:inputText。

<p:inputText id="lastName"  value="#{javaMB.infoEntity.lastName}"  disabled="{!check}"/>                    
public Boolean check{set;} 

如果需要任何说明,请告诉我,

您可以使用 Java EE EL (Expression Language) 的力量。

在您的情况下,如果 lastName 的值 not,则以下声明将生成 disabled p:inputText

<p:inputText id="lastName" value="#{javaMB.infoEntity.lastName}"  
             disabled=#{not empty javaMB.infoEntity.lastName}/>

<p:inputText id="lastName" value="#{javaMB.infoEntity.lastName}"  
             disabled=#{javaMB.infoEntity.lastName != null}/>