在jsf中从java后面的代码调用警报框

时间:2010-09-15 06:19:41

标签: java javascript jsf alert

我需要根据用户在jsf页面中提供的输入更新属性文件。更新文件后,应清除用户会话,并且警告框应显示“设置已更新”,页面应导航到登录页面。

我不知道如何从java代码调用警告框。我发现这可以在asp.net中实现。我搜索谷歌,但没有得到任何可能的解决方案

我怎样才能做到这一点?

欢迎所有可能的解决方案。提前谢谢。

更新 @balusc感谢您的指针。我正在使用JSF RI 1.2和Richfaces 3.3.2

5 个答案:

答案 0 :(得分:2)

我设法通过在a4j命令按钮中使用'oncomplete'属性来解决这个问题。 'oncomplete'属性用于在服务器端进程完成后调用javascript函数。

完成服务器端进程后,我调用了一个调用警告框并使用

的javascript函数
document.location="../login.jsf";

我导航到登录页面。

欢迎任何有关此解决方案的建议。

感谢每一位人士的回答和评论。

答案 1 :(得分:1)

您可以使用PrimeFaces对话框。

PrimeFaces是一个开源的组件,可以增强GUI和开发。

该对话框在按钮上有动作侦听器,因此当用户批准阅读该对话框时,您可以将其重定向到您需要的任何页面。

答案 2 :(得分:1)

要显示警告框,您可以在bean中使用以下代码:

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

清除会话:

HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);
session.invalidate();

答案 3 :(得分:1)

rich:modalPanel showWhenRendered属性设置为托管bean的布尔属性。然后只需在调用后重新调整模态面板的父级。

List of attributes for modal panel

例如:

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

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

您的按钮/链接会有reRender="modalParent"

答案 4 :(得分:0)

this

这样的东西
<%

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>