Spring支持两种不同的验证方法:Spring验证和JSR-303
bean验证。可以通过定义一个Spring验证程序来使用这两个验证程序,该验证程序委派给其他委托程序,包括bean验证程序。到目前为止,一切都很好。
但是,在注释方法以实际请求验证时,则是另一回事了。我可以这样注释
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
或像这样
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
在这里,@Valid是javax.validation.Valid,@
Validated是org.springframework.validation.annotation.Validated。后者的文档说
JSR-303的Valid的变体,支持验证组的规范。设计用于方便使用Spring的JSR-303支持,但不适用于JSR-303。
这并没有太大帮助,因为它无法确切说明两者的不同之处。如果有的话。两者似乎都对我来说很好。
正如您在文档中引用的那样,@Validated
已添加该功能以支持“验证组”,即,经过验证的bean中的字段组。可以在多步骤表单中使用它,您可以在第一步中验证名称,电子邮件等,然后在后续步骤中验证其他字段。
之所以没有将其添加到@Valid
注释中,是因为它使用Java社区流程(JSR-303)进行了标准化,这需要花费时间,Spring开发人员希望允许人们尽快使用此功能。
转到此jira票以查看注释是如何形成的。
本文向大家介绍Spring中DispatcherServlet和ContextLoaderListener之间的区别,包括了Spring中DispatcherServlet和ContextLoaderListener之间的区别的使用技巧和注意事项,需要的朋友参考一下 ContextLoaderListener为Web应用程序创建根Web应用程序上下文,并将其放在ServletContext中。无论
本文向大家介绍Spring Framework中applicationContext.xml和spring-servlet.xml之间的区别,包括了Spring Framework中applicationContext.xml和spring-servlet.xml之间的区别的使用技巧和注意事项,需要的朋友参考一下 Applicationcontext.xml-这是标准的Spring上下文文件,其中
问题内容: 从Spring Boot还是Spring MVC开始。我已经读过一些东西,但是令人困惑,因为两者看上去很相似。 那么两者之间有什么区别? 问题答案: Spring MVC是一个完整的面向HTTP的MVC框架,该框架由Spring框架管理并基于Servlet。它相当于JavaEE堆栈中的JSF。其中最流行的元素是带有注释的类,你在其中实现可以使用不同的HTTP请求访问的方法。它等效于实现
感谢(在Spring中使用@Valid vs@Validated)以及在Spring中使用@Valid和@Validated之间的差异。我现在明白他们之间的区别了。 然而,我无法理解特定的场景。 我在控制器endpoint中接收到一个整数,我想使用JSR-303进行验证(我只会使用最小值(1)),以确保得到一个整数 困惑-在我将放在控制器类上,尝试后,设置才起作用,但没有起作用。只是想弄明白为什么
问题内容: 我遇到了Spring 3提供的两个注释(@Component和@Configuration),我对它们之间有些困惑。 这是我读到的有关@Component的内容 将此“ context:component”放入bean配置文件中,这意味着在Spring中启用自动扫描功能。基本包指示组件的存储位置,Spring将扫描此文件夹并找出Bean(用@Component注释)并将其注册在Spri
本文向大家介绍Spring Java中Save和SaveAndFlush之间的区别,包括了Spring Java中Save和SaveAndFlush之间的区别的使用技巧和注意事项,需要的朋友参考一下 Save和saveAndFlush均可用于保存实体。它们都属于Spring数据库。保存可能会或可能不会立即将您的更改写入数据库。当我们调用saveAndFlush时,系统将强制您的模型状态与数据库进行