0

Spring 3.x 中使用 @Valid 注释的验证:下面是 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>

上面将按原样显示 <li>。问题: 1) 有什么方法可以解释 HTML 标记并显示其输出?2) 虽然两个验证都失败了,但我可以显示一条消息吗?

4

1 回答 1

1

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

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

广告。2)这实际上是 JSR303 的致命弱点——可以做到,但既不简单也不干净(见这个问题)。验证每个带注释字段的顺序是未定义的,因此技巧是使用此处此处@GroupSequence描述的自定义组。

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

于 2012-07-04T11:57:15.597 回答