Spring注释@ModelAttribute和@Valid

使用@ModelAttribute和@Valid有什么好处?

哪些是差异?

可以一起使用它们吗?

@ModelAttribute用于将方法参数或方法返回类型映射/绑定到命名的模型属性.请参见@ModelAttributes JavaDoc.这是一个Spring注释.

@Valid是一个注释,用于标记JSR-303 bean validation的对象.请参阅@Valids JavaDoc.它是JavaEE 6的一部分,但我认为Hibernate具有大多数人使用的早期实现.

使用@ModelAttribute的优点是可以将表单的输入映射到bean. @Valid的优点是您可以利用JSR-303 bean验证来确保根据某些规则验证所生成的bean.

是的,你可以一起使用@ModelAttribute和@Valid.

将数据从表单(sic View)传输到Model对象的最佳方法是使用Spring遵循典型/传统的MVC设计模式.我个人首选的方法是在JSP中使用Spring JSTL< form:*>创建一个表单.标签,设置了modelAttribute.在Controller上,有一个处理程序来接受来自表单的POST,该表单具有匹配的@ModelAttribute,它是表示表单输入的bean.然后我会将“Form Bean”传递给服务层来做一些事情,包括在需要时将“Form Bean”翻译成任何模型(如果表单直接创建模型对象则不需要)以及保存/更新/ etc一个DAO.这只是一种做事的方法,但这可能是我在日常工作中使用Spring做的大部分工作.

我强烈建议您阅读Spring参考资料并按照教程进行操作.参考资料编写得非常好,易于理解,并且包含许多关于在Spring中可以执行的各种方法的示例,并且通常有很多关于如何在Spring中执行操作的选项.

翻译自:https://stackoverflow.com/questions/22658572/spring-annotations-modelattribute-and-valid

转载注明原文:Spring注释@ModelAttribute和@Valid