如何在JSF 2中自定义<h:messages>样式?</h:messages>

时间:2012-11-29 19:22:54

标签: java jsf jsf-2 richfaces

前端开发人员已经完成了HTML消息错误,因此我需要严格使用他的设计。

我是否需要编写一个继承了<h:message/>的组件并实现渲染?或者,当我使用FacesMessage机制在JSF上下文中添加错误时,还有其他简单的方法可以在其中自动显示一些html吗?

完美的解决方案是,当我在上下文中添加FacesMessage时,将显示带有自定义HTML的<div>。可能吗?

如何进行此类定制?怎么简单?

我不想OutputMessage,因为我不会使用FacesMessage机制。

1 个答案:

答案 0 :(得分:2)

应在XHTML页面中添加HTML。无论如何,您可以使用FacesContext.getMessages(String)来检查组件是否有某些消息(并根据该消息呈现适当的HTML)。

例如

 <h:outputText value="Here is the message!:" rendered="#{myBean.messageForComponentX}"/>
 <h:message for="componentX"/>

在你的豆子里

public isMessageForComponentX() {
  return (FacesContext.getMessages("componentX") != null) && (FacesContext.getMessage("componentX") > 0);
}

您还可以查看<rich:notify><p:growl>组件(来自RichFaces和PrimeFaces),以便自定管理邮件。