我想知道是否可以通过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标记内打印出消息,但是我想知道我是否可以通过绑定直接访问验证消息。
答案 0 :(得分:0)
如果您有ValidationMessages.properties
个username_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>