Другой стиль CSS для сообщений JSF - PullRequest
3 голосов
/ 11 мая 2011

В JSF я включил следующую строку в мой файл xhtml:

<h:panelGroup id="messageHeader">
   <h:messages for="messageHeader" layout="list" errorClass="error"  infoClass="inform"/>
</h:panelGroup>

Текст отображается как

<ul>
  <li class="error"> Please enter a First Name </li>
  <li class="error"> Please enter a Last Name </li>
</ul>

Как заставить стиль CSS применять к тегу <ul> или к некоторому окружающему тегу <span>?

Вот что я пытаюсь сделать. Я хочу, чтобы все сообщения об ошибках отображались в одном красном поле. Я также хочу, чтобы все информационные сообщения появлялись в одном зеленом поле. В приведенном выше примере получается 2 красных поля; по одному на каждый <li> предмет.

Ответы [ 2 ]

6 голосов
/ 11 мая 2011

Используйте атрибут styleClass <h:messages>.Он будет применен к родительскому элементу HTML.

Например,

<h:messages styleClass="messages" />

будет иметь вид

<ul class="messages">
    ...
</ul>

Обновление :Похоже, вы хотите показывать информацию и сообщения об ошибках в отдельных списках.Вместо этого используйте два <h:messages/>, для которых вы скрываете другую серьезность.

<h:messages styleClass="errorMessages" infoStyle="hide" />
<h:messages styleClass="infoMessages" errorStyle="hide" />

с

.hide {
    display: none;
}
0 голосов
/ 11 мая 2011

Это можно сделать, указав тег h: messages для каждого типа сообщений, который вы хотите показать с соответствующим условием. Например, для сообщения об ошибке типа:

<h:panelGroup id="errorMessageHeader" class="whatever you need" rendered="#{FacesContext.isValidationFailed()}">
   <h:messages for="errorMessageHeader" layout="list" errorClass="error" />
</h:panelGroup>

Условия для других типов сообщений вы можете найти, комбинируя методы из

javax.faces.context.FacesContext

Спасибо, * 1010 A.K. *

...