вызов окна оповещения из кода позади Java в JSF - PullRequest
3 голосов
/ 15 сентября 2010

У меня есть требование обновить файл свойств на основе ввода, предоставленного пользователем на странице jsf. После обновления файла пользовательский сеанс должен быть очищен, а в окне оповещения должно быть указано «Настройки обновлены», и страница должна перейти на страницу входа.

Я не знаю, как вызвать окно предупреждения из кода Java. Я обнаружил, что это возможно в asp.net. Я искал в Google, но не получил никакого возможного решения

Как я могу сделать это возможным?

Все возможные решения приветствуются. Заранее спасибо.

UPDATE @balusc спасибо за указатель. Я использую JSF RI 1.2 и Richfaces 3.3.2

Ответы [ 5 ]

2 голосов
/ 23 сентября 2010

Мне удалось решить эту проблему с помощью атрибута «oncomplete» в кнопке команды a4j. Атрибут «oncomplete» используется для вызова функции javascript после завершения процесса на стороне сервера.

После завершения процесса на стороне сервера я вызвал функцию javascript, которая вызвала окно предупреждения и использовала

document.location="../login.jsf";

Я перешел на страницу входа.

Любые предложения относительно этого решения приветствуются.

Спасибо всем за ответы и комментарии.

1 голос
/ 20 сентября 2010

Используйте rich:modalPanel с атрибутом showWhenRendered, установленным в логическое свойство вашего управляемого компонента. Затем просто повторно закажите родителя модальной панели после вашего звонка.

Список атрибутов для модальной панели

Например:

<a4j:outputPanel id="modalParent">
   <rich:modalPanel showWhenRendered="#{bean.someBooleanValue}">

   </rich:modalPanel>
</a4j:outputPanel>

А ваша кнопка / ссылка будет иметь reRender="modalParent"

1 голос
/ 15 сентября 2010

Вы можете использовать PrimeFaces диалоговое окно.

PrimeFaces - это открытый источник компонентов, улучшающих графический интерфейс и разработку.

В диалоге есть слушатель действий на кнопках, поэтому, когда пользователь одобряет чтение диалога, вы можете перенаправить его на любую нужную вам страницу.

1 голос
/ 17 сентября 2010

Для отображения окна оповещения вы можете использовать следующий код в вашем бине:

JavascriptContext.addJavascriptCall(facesContext, "alert('Setting has been updated');");

Очистка сеанса:

HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);
session.invalidate();
0 голосов
/ 15 сентября 2010

что-то вроде это

<%

ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse)ectx.getResponse();
HttpSession session = (HttpSession)ectx.getSession(false);
session.invalidate(); 
%>
<script type="text/javascript">
alert('Setting has been updated');
location.replace('/index.jsp');
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...