【问题标题】:enable / disable based on the null value for p:inputText根据 p:inputText 的 null 值启用/禁用
【发布时间】:2020-05-05 22:32:30
【问题描述】:

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

  • 如果为数据库中的字段设置了空值,则启用 p:inputText 的输入
  • 如果为数据库中的字段设置了值,则禁用或 使其只读 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 for first name,启用 p:inputText for last name,禁用 p:inputText for age。 如果我们设置第三行,则 p:inputText for first name 被启用, p:inputText for last name 被禁用, p:inputText for age 被禁用


我尝试过的

使用 readonly="true" 不起作用,因为如果为它设置了空值,我需要输入 p:inputText。

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

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

【问题讨论】:

    标签: jsf disabled-input


    【解决方案1】:

    您可以使用 Java EE EL (Expression Language) 的强大功能。

    在您的情况下,如果 lastName 的值为 not null

    ,则以下声明将生成 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}/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2018-09-19
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2019-05-07
      • 2019-02-18
      相关资源
      最近更新 更多