zoukankan      html  css  js  c++  java
  • SpringMVC_配置和注解--跟海涛学SpringMVC(和自己在项目中的实际使用的对比)

    Spring2.5 之前,我们都是通过实现Controller 接口或其实现来定义我们的处理器类,就像前面介绍的

    这里介绍的是Spring3.1的新特性,虽然现在我用的是spring4.2.6,不过基本的用法差距不大,也可以参考一下

     

    @Controller:用于标识是处理器类;

    @RequestMapping:请求到处理器功能方法的映射规则;

    @RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

    @ModelAttribute:请求参数到命令对象的绑定;

    @SessionAttributes:用于声明session 级别存储的属性,放置在处理器类上,通常列出模型属性(如

    @ModelAttribute)对应的名称,则这些属性会透明的保存到session 中;

    @InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类

     

    @CookieValue:cookie 数据到处理器功能处理方法的方法参数上的绑定;

    @RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

    @RequestBody:请求的body体的绑定(通过HttpMessageConverter 进行类型转换);

    @ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

    @ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

    @ExceptionHandler:注解式声明异常处理器;

    @PathVariable:请求URI 中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful 架构风

    格的URI;

     

    <mvc:annotation-driven>:

    自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter

    支持 Spring3的ConversionService 自动注册

    支持 JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)

    自动注册相应的HttpMessageConverter(用于支持@RequestBody 和 @ResponseBody)(如XML输入输出转换器

    (只需将JAXP实现放置到classpath)、JSON 输入输出转换器(只需将Jackson 实现放置到classpath))等。

    <mvc:interceptors>:注册自定义的处理器拦截器;

    <mvc:view-controller>:和ParameterizableViewController 类似,收到相应请求后直接选择相应的视图;

    <mvc:resources>:逻辑静态资源路径到物理静态资源路径的支持;

    <mvc:default-servlet-handler>当在web.xml 中DispatcherServlet使用<url-pattern>/</url-pattern> 映射时,能映射静

    态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给默认的Servlet来响应静态

    文件,否则报404 找不到资源错误,)。

     

    Flash 属性和 RedirectAttribute:通过FlashMap 存储一个请求的输出,当进入另一个请求时作为该请求的输入,

    典型场景如重定向(POST-REDIRECT-GET 模式,1、POST 时将下一次需要的数据放在FlashMap;2、重定向;3、通过

    GET 访问重定向的地址,此时FlashMap 会把1 放到FlashMap 的数据取出放到请求中,并从FlashMap 中删除;从而支

    持在两次请求之间保存数据并防止了重复表单提交)。

    Spring Web MVC 提供FlashMapManager 用于管理FlashMap,默认使用SessionFlashMapManager,即数据默认存储

    在session

     

    @Validated:JSR-303 的javax.validation.Valid 一种变体(非JSR-303 规范定义的,而是Spring 自定义的),用于

    提供对Spring 的验证器(org.springframework.validation.Validator)支持,需要Hibernate Validator 4.2及更

    高版本支持;

    @RequestPart : 提供对“ multipart/form-data ” 请求的全面支持, 支持Servlet 3.0 文件上传

    (javax.servlet.http.Part)、支持内容的HttpMessageConverter(即根据请求头的Content-Type,来判断内容区数

    据是什么类型,如JSON、XML,能自动转换为命令对象),比@RequestParam 更强大(只能对请求参数数据绑定,key-alue

    格式),而@RequestPart 支持如JSON、XML 内容区数据的绑定;详见本章的第°¡°¡°¡节

  • 相关阅读:
    【转】ASP.NET MVC 使用 FluentScheduler 定时器计划任务
    【转】prototype扩展的JavaScript常用函数库
    【转】JavaScript系列文章:自动类型转换
    【转】Open Live Writer 插件更新
    highcharts与highstock实例
    SQL SERVER数据类型与C#数据类型对照表
    Highcharts在IE中不能一次性正常显示的一种解决办法
    MIME类型大全
    几种工具反编译被编译好的DLL文件
    MySQL之数据库的操作
  • 原文地址:https://www.cnblogs.com/lakeslove/p/SpringMVC.html
Copyright © 2011-2022 走看看