zoukankan      html  css  js  c++  java
  • springMVC

     

    @RequestMapping

    除了可以修饰方法,还可以修饰类,修饰方法时是提供详细的映射信息,修饰类时相当于WEB-INF的根目录

    1.修饰方法

     

    2.修饰类

    @RequestMapping请求方式

    如果时通过超链接的方式则韦get方式,表单一般为post

     

    @RequestMapping请求参数(params),请求头(headers)

    @RequestMapping支持通配符

    @PathVariable   映射URL 绑定占位符 ,通过URL绑定到控制器@Controller中,@PathVariable在springMVC走向REST风格有里程碑的意义

     

     HiddenHttpMethodFilter过滤器(资源表现层转化)

    rest风格的URL

    GET  获取资源

    POST 新建资源

    DELETE  删除资源

    PUT 更新资源

    @PathVariable 来获取资源

     @RequestParam获取请求参数

     

      @RequestHeaher获取请求头(用得不多),用法同@RequestParam,作用是映射请求头信息

    @CookieValue:获取Cookie值(了解,用得不多);

    使用POJO对象绑定请求参数

    因为在开发中不可能用request.getParameter()一个一个得获取请求参数,那样的话 成本太高,所以springMVC会按照请求参数和POJO对象进行匹配,还支持级联属性,

    使用Servlet原生API作为参数

    开发中难免会用到Servlet原生API,如HttpServletRequest,HttpServletResponse等

     

     处理模型数据之ModelAndView(no success)

    ModelAndView可以包含视图和模型

     springMVC会把ModelAndView 的model放到请求域中

      处理模型数据之Map(no success)

    处理模型数据之SessionAttributes注解(把模型放在session中)

    当某个属性需要共用时,就使用SessionAttributes,该注解只能放在类上面,不能放在方法上

    如图同时放在请求域和session域中

     

    @ModelAttribute注解  ***(和struts2的一个拦截器差不多)

    有@ModelAttribute标记的方法,会在每个目标方法调用前先调用@ModelAttribute标记的这个方法(每个方法调用前都会

    使用情景

      当我们修改某个表的时候,如果其中有一个字段不能修改(入驻时间这类),我们首先想到的是从表单输入这些字段,然后创建对象和这些表单输入的字段匹配,因为对象是新创建的,所以匹配的时候如果表单输入的和对象的属性匹配,则赋值,如果表单没有与对象对应的值,则为空,显然,如果这样的话,不是我们想要的,进行修改的话表单没有的值则为空,所以引入了@ModelAttribute注解,这样的话,当我们在输入表单的时候,如果某些字段不能修改,则使用@ModelAttribute注解,从数据库中获取对象的值(通过id),为空的则赋从数据库查询的值给它,

    如下

    没有使用@ModelAttribute注解,password为空

     使用@ModelAttribute注解

     @ModelAttribute原理

    /*

    *

    */

    @ModelAttribute运行流程

    @SessionAttributes这里有一个坑,会发生500错误**********

    原因:

    /*

    *

    */

    SpringMVC_视图解析流程分析

    /*

    *

    */

     

    自定义视图

    重定向

    annotation-driven配置

     加了这个标签之后,会为我们注册三个bean,

    分别是

    RequestMappingHandlerMapping,

    RequestMappingHandlerAdapter,

    ExceptionHandler,

    使得我们的@RequestMapping,@RequestParam,@ExceptionHandler,@DateTimeFormat等这些注解生效,在之前这些都得手动配置才行。

    如果使用了<mvc:view-controller>标签,必须添加annotation-driven标签

    <mvc:view-controller>

    一般springmvc都是经过Controller,但是当我们不想经过Controller,而是直接访问视图的时候。就可以通过mvc:view-controller,使用<mvc:view-controller>时必须配置annotation-driven,不然会报404错误,

    springMVC数据绑定流程分析

    如:当我们从表单输入一个日期,这个日期从白哦但输入时是一个字符串,然而它所对应的实体类类型时date,所以在传输过程中要进行数据转换,流程为:

     

    SpringMVC_自定义类型转换器

    当我们需要将数据转换成另一种类型的时候,就用到数据转换,但是springMVC给我们封装了很多类型转化,所以这个方法了解了解就行,具体用到再看

    SpringMVC_InitBinder注解

    /""

    "

    ""/

    SpringMVC_数据的格式化

    如日期的转化,float转化等,当从表单输入数据时,日期和浮点型是不能被正常转化的(会发生400错误),所以需要在对象的实体类属性上加注解

    生命不止,折腾不息
  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/steakliu/p/10498926.html
Copyright © 2011-2022 走看看