JSF <h:message>里面的<h:graphicimage> title </h:graphicimage> </h:message>

时间:2014-02-02 19:02:01

标签: validation jsf jsf-2

所以,我试图将验证错误消息显示为图像标题。我想这样做,因为消息很长,我不希望它们发生在我的页面上。

试图将UIComponent <h:message />对象绑定到控制器对象,但后来我找不到如何从UIComponent获取span的值。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

在迭代消息时,只需在<ui:repeat>内控制标记。您可以通过FacesContext#getMessageList()在EL中获取消息。

所以不是,

<h:inputText id="foo" ... />
<h:message for="foo" />

做类似

的事情
<h:inputText binding="#{foo}" ... />
<ui:repeat value="#{facesContext.getMessageList(foo.clientId)}" var="message">
    <h:graphicImage name="#{message.severity}.png" title="#{message.summary}" />
</ui:repeat>

其中#{message}FacesMessage的一个实例,提供通常的getter。

答案 1 :(得分:0)

另一种解决方案是将所有这些长消息定义并放在.properties的文件中,作为捆绑消息。看看这里:When to use message bundle and resource bundle