Spring MVC 注解@Valid 啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC 注解@Valid 啥意思相关的知识,希望对你有一定的参考价值。
@RequestMapping(value="/register/basic/tranId", method=RequestMethod.POST) public String registerBasicInfomation( @PathVariable("tranId") String tranId, @Valid VendorBasicInfo vendorBasicInfo, BindingResult result, Model model) VendorBasicInfo 是前一个页面表单绑定的对象,我知道这个是传参,可是那注解是什么意思?请教大神
@Valid Production production //实体设置+类+类的引用 直接将页面传过来的production对象中的信息封装到里面去了 参考技术A 应该是把你的这个方法和你要验证的类 相关联@enablewebmvc注解啥用途
可以说各有优势:MVC纵向切割了开发过程中的代码,从服务器到浏览器层层分离,层次之间耦合度很低,因为它是顺着底层的开发脉络进行封装,所以有利于开发者对整个程序过程流转的理解。但是MVC有一个非常大的缺点,这个缺点是和整个软件发展思路相背离的,那就是它无法封装、无法封装所以无法被重用。有谁看到过mvc下面的组件?有的只是一个个现成的案例,然后拿来修改。因为一个组件肯定牵涉到控制和显示,但是mvc的开发这两个层次是分离的。MVC只适合轻量级的开发,桌面开发是极少用到mvc模式的。然而web开发恰恰就是轻量级,至今所有的web开发都是轻量级的,因为网络硬件条件的限制,不需要也无法做到非常复杂的逻辑。这也是MVC非常非常适合web开发的原因。WebForm是微软前面一套web开发的机制。它横向切割了代码,控制和显示是封装在一起的。它从开发者思维逻辑上而不是实际情况上对代码进行封装,开发webform容易上手的原因也就在此了,但这个不利于开发者对底层程序流转机制的理解。WebForm中view和controller是放在一起的,WebForm一出现后,随之而来的是大量的组件诞生,这是mvc模式下看不到的。微软的经验之一是硬件发展很迅速。代码的封装是靠牺牲运行效率来提高开发效率,牺牲的运行效率通过提高硬件性能来解决。但微软在webform上犯了经验主义的错误,这个经验不适合网络硬件,网络硬件要考虑兼容性而且是国家的基础设施,更新的灵活性远比单机要差。大量的组件因为硬件的瓶颈无法给WebForm带来什么优势。在发展了几年webform后,微软觉得这样下去不行,等到网络硬件发展起来不知道到猴年马月了,所以就抄了一下成熟的mvc,通过EntityFramework做数据库和对象的映射,很明显,它是为了充当mvc中那个Model。通过mvc来控制和展示。webform生产关系是比mvc先进的,但是它不适合现在的网络设施生产力,如果要适合说不定要10年后。webform和mvc很好的印证了生产关系必须适合生产力,即使强大如微软也无法改变客观规律。 参考技术A@enablewebmvc注解有什么用途:
@EnableWebMvc是使用Java 注解快捷配置Spring Webmvc的一个注解。在使用该注解后配置一个继承于WebMvcConfigurerAdapter的配置类即可配置好Spring Webmvc。
通过查看@EnableWebMvc的源码,可以发现该注解就是为了引入一个DelegatingWebMvcConfiguration Java 配置类。并翻看DelegatingWebMvcConfiguration的源码会发现该类似继承于WebMvcConfigurationSupport的类。
其实不使用@EnableWebMvc注解也是可以实现配置Webmvc,只需要将配置类继承于WebMvcConfigurationSupport类即可。
内容:
Spring 3 风格的类型转换 -- 通过一个ConversionService 实例 配合JavaBean PropertyEditors,用于Data Binding。
支持@NumberFormat注解通过ConversionService 来格式化Number字段。
支持使用@DateTimeFormat注解来格式化Date、Calendar、Long、以及Joda Time字段。
支持使用@Valid校验@Controller input -- 如果classpath中存在一个JSR-303 Provider。
HttpMessageConverter支持@RequestMapping或@ExceptionHandler method的 @RequestBody method parameters和@ResponseBody method 返回值。
比较长,其实就是支持handler (controller)的@RequestBody参数/@ResponseBody返回值。
以上是关于Spring MVC 注解@Valid 啥意思的主要内容,如果未能解决你的问题,请参考以下文章
请问各位大师:spring mvc中下面报的这个错是啥原因?应该如何解决?