включить / отключить на основе нулевого значения для p: inputText

Я хочу создать приложение JSF. В приложении пользователь будет искать пользовательские записи в базе данных и устанавливать значения в форме, а затем отправлять форму. У меня есть небольшая проблема, когда мне нужно включить/отключить на основе нулевого значения для p: inputText

  • Если для поля из базы данных задано нулевое значение, то включите ввод для 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 для имени отключен, 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;} 

Дайте мне знать, если потребуются какие-либо разъяснения,


person lena    schedule 19.01.2020    source источник


Ответы (1)


Вы можете использовать возможности Java EE EL (язык выражений) .

В вашем случае следующие объявления будут генерировать disabled p:inputText, если значение lastName равно не null.

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

or

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