如何显示 JSF 成功消息

Posted

技术标签:

【中文标题】如何显示 JSF 成功消息【英文标题】:How to display a JSF success message 【发布时间】:2011-08-07 11:17:19 【问题描述】:

我想知道当 h:form 中提交的数据有效时,如何在 JSF 页面上添加“成功”消息。例如“记录成功插入”。我尝试使用 FacesContext.addMessage(String clientId, String message),但该消息显示在同一个 h:messages 框中,该框在无效数据的情况下显示错误消息,导致文本为红色。我不想使用 javascript 警报。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

使用 null 作为客户端 ID 使其成为全局消息,并在视图中使用以下内容仅显示全局消息:

<h:messages globalOnly="true" />

只需将其放在表单下方或上方的某个位置,具体取决于功能要求。如果您已经使用&lt;h:messages/&gt; 来显示验证错误,而不是为每个输入元素使用&lt;h:message/&gt;,那么您需要在此设置globalOnly="false"

【讨论】:

感谢您的快速回复。您的解决方案似乎不起作用。成功消息显示在两个 h:messages 框中。我的代码看起来像
...
只需在另一个上设置globalOnly="false" :) 查看答案更新。 不幸的是我仍然收到两次消息,视图如下:
...
代码: public String AddJongere() jDao.insertJongere(currentJongere); ContextProvider.getFacesContext().addMessage(null, new FacesMessage("Jongere succesvol ingeschreven","Succesvol"));返回空值; 我做错了什么?
【参考方案2】:

使用不同的样式类

h:messages  infoStyle="color:darkgreen" errorStyle="color:darkred"  

添加消息时 为了成功

FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, message, null);

失败

FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, message,      null);

【讨论】:

以上是关于如何显示 JSF 成功消息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JSF 显示/隐藏组件?

Symfony:注销后如何显示成功消息

如何根据 React js 中 api 的响应显示成功或错误消息

iOS - 如何延迟显示消息“购买成功”以等待验证收据完成

将日期插入数据库后如何在vue js中显示成功消息

表单提交成功后如何在 div 中创建成功消息?