我想创建一个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 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}/>