Spring MVC 3.0实战:注解驱动的校验详解

需积分: 4 32 下载量 154 浏览量 更新于2024-08-23 收藏 1.64MB PPT 举报
"本文档主要介绍了如何在Spring MVC 3.0中使用注解驱动的校验,特别关注了@Valid注解在用户处理类中的应用,以及Spring MVC框架的基本结构和新特性。内容来源于陈雄华的《Spring MVC 3.0实战指南》和《Spring 3.x企业应用开发实战》。" 在Spring MVC中,注解驱动的校验是一种高效且灵活的方式来验证用户输入的数据。例如,在提供的代码示例中,我们看到一个名为`UserController`的类,它被`@Controller`和`@RequestMapping("/user")`注解标记,表明这是一个处理用户相关请求的控制器,且其处理的URL路径以"/user"开头。 在这个控制器中,有一个`handle91`方法,它接收一个`User`对象并使用`@Valid`注解进行校验。`@Valid`注解告诉Spring MVC在将HTTP请求数据绑定到`User`对象后,应使用JSR 303(Java Bean Validation)规定的校验规则进行验证。如果`User`对象中的数据不符合这些规则,Spring MVC会使用`BindingResult`参数来存储校验结果。如果`bindingResult.hasErrors()`返回`true`,说明存在校验错误,方法会返回一个用于显示错误信息的逻辑视图名;否则,表示数据校验成功,将跳转到另一个逻辑视图。 Spring MVC 3.0引入了许多新特性,如支持RESTful风格的URL,添加了更多的注解以实现完全注解驱动的开发,引入了HTTP输入输出转换器(HttpMessageConverter),与数据转换、格式化和验证框架紧密集成,提供了对静态资源的特殊处理,以及允许控制器方法签名更加灵活,可以完全脱离Servlet API。 框架的核心组件包括`DispatcherServlet`,它负责调度请求;`HandlerMapping`用于映射请求到相应的处理器;`HandlerAdapter`适配不同的处理器;`ModelAndView`用于返回视图和模型数据;`ViewResolver`解析视图;模型(Model)和视图(View)则分别代表业务数据和展示逻辑。 在代码示例中,`@Controller`注解将类标记为控制器,`@RequestMapping("/user")`定义了控制器的基路径,而`@RequestMapping(value = "/register")`指定了处理方法`register`所对应的URL路径。`register`方法返回逻辑视图名`"user/register"`,这个名称会被`ViewResolver`解析成实际的视图。 通过这样的注解驱动的方式,开发者可以更方便地实现数据校验,提高代码的可读性和维护性,同时利用Spring MVC的框架优势简化Web应用程序的开发。