Как связан p:outputLabel с более чем одним p:inputText, когда обязательный атрибут имеет значение true

Обычно мы используем outputLabel следующим образом:

<p:outputLabel value="Name: " for="myname"></p:outputLabel> <p:inputText id="myname" value="#{mybean.name}"></p:inputText>

Как я могу раскрасить этот outputLabel, если некоторые из трех входов, например, пусты. Я думал использовать p: ajax, но мне придется добавить Css к метке outputLabel, чтобы выглядеть как обычное поведение outputLabel для такого случая.

Это единственный способ, который я себе представляю, немного помогите, пожалуйста.

Спасибо за чтение


person oshingc    schedule 18.06.2014    source источник


Ответы (1)


Вы можете использовать EL в атрибуте стиля любого ввода.

Как я могу раскрасить этот outputLabel, если некоторые из трех входов, например, пусты.

Таким образом, вы делаете это:

<p:inputText id="firstInput" value="#{mybean.name}">
  <p:ajax event="keyup" update="myLabel"/>
</p:inputText>

<p:inputText id="secondInput" value="#{mybean.name2}">
  <p:ajax event="keyup" update="myLabel"/>
</p:inputText>

<p:inputText id="thirdInput" value="#{mybean.name3}">
  <p:ajax event="keyup" update="myLabel"/>
</p:inputText>

<p:outputLabel id="myLabel" value="I change colors!" 
   style="color:#{(empty mybean.name and empty mybean.name2 and empty mybean.name3) ? 'red' : 'black'}"/>

Стиль будет читаться как: «если имя пусто или равно нулю, а имя2 пусто или равно нулю, а имя3 пусто или равно нулю, то «красный», иначе «черный»».

person rion18    schedule 18.06.2014