假设我有一个表单,我可以在其中为新用户提交 username(@NaturalId)
和 password
。
我想为用户添加一个独特的 username
。我如何使用 @Valid
注释来验证此约束?如果用户名不是唯一的,我如何通过 <form:error/>
在 jsp 中显示此信息?
原文由 user902691 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有一个表单,我可以在其中为新用户提交 username(@NaturalId)
和 password
。
我想为用户添加一个独特的 username
。我如何使用 @Valid
注释来验证此约束?如果用户名不是唯一的,我如何通过 <form:error/>
在 jsp 中显示此信息?
原文由 user902691 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
1 回答2.2k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读
2k 阅读
1 回答864 阅读
1 回答684 阅读
AFAIK 没有执行此操作的注释。你有两个选择
第一,创建自定义验证器注释。 这 是一个很好的例子。调用您的 DAO 类并检查验证器实现中的可用性
或者
在实体类的属性上设置 unique = true。
但这不适用于@valid,而是抛出持久性异常。您必须使用适当的逻辑来处理它。
第一个解决方案并非万无一失。在 SO 上检查 这个 答案。
第二个意志永远不会失败。
更新
正如 NimChimpsky 评论的那样,将两者结合使用将是一个具体的解决方案。