powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF сообщение при заходе на страницу
4 сообщений из 4, страница 1 из 1
JSF сообщение при заходе на страницу
    #39335080
Boksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, подскажите пожалуйста.
JSF при загрузке страницы происходит инициализация бина, в ней добавляется
Код: java
1.
2.
FacesContext.getCurrentInstance().addMessage("messages",
                new FacesMessage(FacesMessage.SEVERITY_WARN, "ffffff", null));


Но при отображение страницы, сообщение не отображается.

Есть подозрение, что это связано с жизненным циклом страницы, но может кто-то подскажет почему так и как сделать, чтобы сообщение отобразилось?
...
Рейтинг: 0 / 0
JSF сообщение при заходе на страницу
    #39335172
Boksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выяснилось, что используется шаблон, и сообщения на отдельном xhtml, получается, что при загрузке странице сначала создаются компоненты шаблона, в том числе и сообщения, и только потом инициализируется нужный мне бин. Вроде понятно, но что с этим делать пока не придумал =)
...
Рейтинг: 0 / 0
JSF сообщение при заходе на страницу
    #39335725
Boksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внимательно посмотрел, получается такая ситуация, что заполнения сообщений происходит во время отрисовки (RENDER_RESPONSE) , и инициализация бина тоже в этой фазе, у бина стоит аннотация ViewScoped, можно как-то проинициализировать бин не во время отрисовки?
...
Рейтинг: 0 / 0
JSF сообщение при заходе на страницу
    #39337562
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Boksy, тут есть 2 приема (на самом деле - вариации одного и того же). Проблема в том, что обычно сообщения ставят в начале страницы:
Код: powershell
1.
2.
messages
content


Когда происходит отрисовка страницы, в {messages} не выводятся сообщения, возникшие при генерации содержимого {content}. Вывод - надо сначала отрисовать содержимое, а потом сообщения:
1)
Код: powershell
1.
2.
content
messages

Это самое простое.
Однако, часто нужно, чтобы сообщения все-таки были сверху. Надо как-то придумать, чтобы страница отрисовывалась задом наперед. Например (1а) - с помощью стилей или (1б) - с помощью javascript, которые визуально будут помещать блок с {messages} в начало страницы.
Но есть вариант отрисовать их в нужном порядке с использованием буфера (2). Например, вот так это делается в с использованием tomahawk:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<ui:composition 
...
	xmlns:t="http://myfaces.apache.org/tomahawk">
	<t:buffer into="#{content}">
...
	</t:buffer>
	<t:buffer into="#{messages}">
		<f:messages .../>
	</t:buffer>
	<h:outputText value="#{messages}" escape="false" />
	<h:outputText value="#{content}" escape="false" />
</ui:composition>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF сообщение при заходе на страницу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]