включить / отключить на основе нулевого значения для p: inputText - PullRequest
0 голосов
/ 20 января 2020

Я хочу создать приложение 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;} 

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

1 Ответ

0 голосов
/ 25 января 2020

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

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

<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}/>
...