Spring验证显示自定义消息

时间:2012-07-04 11:30:26

标签: spring spring-mvc

使用@Valid注释在Spring 3.x中进行验证: 以下是messages_en.properties的片段。我有一个具有用户名和密码字段的表单。当用户未在“用户名”字段中输入任何内容时,它会在另一个下方显示这两个消息。

NotEmpty.loginBean.username=Username cannot be Empty
Size.loginBean.username=Size must between 5 to 50 characters.

不解释message.properties中给出的任何HTML标记。

NotEmpty.loginBean.username=<li>Username cannot be Empty</li>

上面会显示&lt; li&gt;原样。 问题: 1)有没有办法解释HTML标签并显示其输出? 2)虽然验证都失败了,但我可以显示单个消息吗?

1 个答案:

答案 0 :(得分:1)

广告。 1)是的,使用htmlEscape="false"

<form:errors path="nip" cssClass="error" htmlEscape="false" />

广告。 2)这实际上是JSR303的阿基里斯脚跟 - 它可以完成,但既不容易也不干净(见this issue)。验证每个带注释字段的顺序是未定义的,因此诀窍是使用@GroupSequence和自定义组,如herehere所述。

替代解决方案是使用custom annotation with @ReportAsSingleViolation,但它不会区分NotEmpty和Size错误,因为它会有自己的错误消息。