在p:tooltip中显示@NotNull消息

时间:2013-06-18 21:33:59

标签: jsf bean-validation messages

我想知道是否可以通过UIInput的绑定访问通过Bean验证分配的验证错误消息。

例如,我有以下属性:

@NotNull(message = "{username_required}")
private String username;

当我使用h:message打印错误时,我会打印出相应的消息,因此我知道Bean Validation可以正常工作。我想打印出没有h:message标签的消息,直接将值提供给工具提示,如下所示:

 <p:tooltip for="usernameErrorImage" rendered="#{!usernameInputBinding.valid}" 
     value="#{!usernameInputBinding.requiredMessage}"/>

'rendered'属性按预期工作,但工具提示的值为'true',这不是我的消息。我也尝试过'convertedMessage'和'requiredMessage',但是它们都返回字符串'true'。将h:消息放在tooltip标记内打印出消息,但是我想知道我是否可以通过绑定直接访问验证消息。

2 个答案:

答案 0 :(得分:0)

如果您有ValidationMessages.propertiesusername_required条目,只需使用<f:loadBundle>通常的方式将其作为资源包加载到JSF视图中。

<f:loadBundle basename="ValidationMessages" var="validationMessages" />
...
<p:tooltip ... value="#{validationMessages['username_required']}"/>

在初始尝试中抓取组件的requiredMessage属性肯定不会起作用,因为它只返回手动定义的requiredMessage属性。

答案 1 :(得分:0)

您可以将消息嵌套在工具提示中。 这在Primefaces 4中对我有用。

豆:

@NotNull(message = "{username_required}")
private String username;

XHTML:

<p:tooltip for="usernameErrorImage">
    <p:message for="usernameErrorImage" />
</p:tooltip>