本文主要介绍了如何在SpringMVC 3中使用注解驱动的校验机制,通过示例代码展示了如何结合JSR 303注解进行数据验证,并提到了SpringMVC 3的新特性及其框架结构。
在SpringMVC 3中,可以使用注解来简化数据校验的过程。例如,`@Valid` 注解用于指示Spring MVC在处理请求时执行对象的校验。在给定的代码段中,`UserController` 的 `handle91` 方法接收一个带有JSR 303注解的 `User` 对象和一个 `BindingResult` 参数。`@Valid` 注解应用于 `User` 对象,意味着当请求数据被绑定到 `User` 实例后,Spring MVC会自动调用相应的校验框架(如Hibernate Validator)来根据 `User` 类中定义的校验规则(如`@NotNull`, `@Size`, 等)执行校验。如果 `BindingResult` 持有的 `hasErrors()` 方法返回 `true`,说明存在校验错误,控制器将重定向到 `/user/register3` 页面;反之,如果没有错误,则会跳转到 `/user/showUser` 页面。
SpringMVC框架的核心组件包括 `DispatcherServlet`,它作为前端控制器负责分发HTTP请求。`HandlerMapping` 用于映射请求URL到相应的处理器,而 `HandlerAdapter` 处理这些处理器的执行。`ModelAndView` 是模型和视图的组合,用于传递数据到视图层。`ViewResolver` 负责解析逻辑视图名到实际的视图(如JSP、XML或PDF)。SpringMVC 3新增支持RESTful风格的URL、更多的注解驱动功能、HTTP输入输出转换器、与数据转换、格式化、验证框架的集成,以及对静态资源的处理等。
在实际的控制器类中,`@Controller` 注解标记类为Spring MVC的处理器,`@RequestMapping` 注解用于指定控制器映射的URL路径,而方法级别的 `@RequestMapping` 则定义了处理方法所对应的URL,相对于控制器类的URL。
SpringMVC 3通过注解极大地简化了Web应用的开发,提供了高效的数据校验和灵活的控制器设计,使得开发者能更专注于业务逻辑而不是底层的HTTP处理。结合JSR 303进行数据校验,能够确保输入数据的质量,防止因无效数据引发的错误。