Могу ли я добавить html в сообщение jsf h: с пользовательским компонентом? - PullRequest
0 голосов
/ 05 февраля 2012

Я хотел бы добавить изображение заголовка и нижнего колонтитула в сообщение h: в JSF 2.0, чтобы оно имело хорошие границы. Похоже, что способ сделать это состоит в том, чтобы реализовать пользовательское средство визуализации для компонента и записать теги. Я хотел бы сделать это как составной компонент, но я не могу понять, как сказать «не рисуйте верхний и нижний колонтитулы, если вы не рисуете сообщение».

Есть ли способ сделать это с помощью составного компонента?

Я использую мохарру.

1 Ответ

1 голос
/ 05 февраля 2012

Вы можете использовать FacesContext#messageList(String clientId), чтобы получить List<FacesMessage> со всеми сообщениями для определенного идентификатора клиента (из которого вас обычно интересует только первое, вы можете изменить приведенный ниже примересли ты хочешь).Таким образом, вы можете просто проверить атрибут rendered, если список не пустой.Затем вы можете использовать <h:outputText escape="false"> для отображения сообщения без неявного экранирования HTML.При необходимости вы можете обернуть все это в составной файл, чтобы сохранить ваш код СУХИМЫМ.

<h:inputText id="input1" binding="#{input1}" value="#{bean.input1}" />
<ui:param name="input1Messages" value="#{facesContext.messageList(input1.clientId)}" />
<h:panelGroup rendered="#{not empty input1Messages}">
    <h3>Some header</h3>
    <p><h:outputText value="#{input1Messages[0].summary}" escape="false" /></p>
    <p>Some footer</p>
</h:panelGroup>

Обратите внимание, что этот метод не был доступен в JSF 1.x, поэтому вам нужно создать собственный компонентэто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...