• 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错误),所以需要在对象的实体类属性上加注解

    生命不止,折腾不息
  • 相关阅读:
    在线课程的总结
    数据库相关整理
    两个栈实现队列&两个栈实现队列
    Django中间件的5种自定义方法
    Python Web开发之路
    内置函数——format
    Django组件拾忆
    支付宝支付流程
    消息队列之RabbitMQ
    WebSocket
  • 原文地址:https://www.cnblogs.com/steakliu/p/10498926.html
Copyright © 2020-2023  润新知