1

我想知道是否可以通过 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:message 放在工具提示标记内会打印出消息,但是我想知道是否可以直接通过绑定访问验证消息。

4

2 回答 2

0

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

豆:

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

xhtml:

<p:tooltip for="usernameErrorImage">
    <p:message for="usernameErrorImage" />
</p:tooltip>
于 2014-02-07T11:23:35.527 回答
0

假设您ValidationMessages.properties拥有其中的username_required条目,只需使用<f:loadBundle>通常的方式将其加载为 JSF 视图中的资源包。

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

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

于 2013-06-19T16:19:39.197 回答