zoukankan      html  css  js  c++  java
  • SpringMVC之数据绑定快速总结

    #数据绑定:Spring MVC会根据客户端请求参数的不同,将请求信息以一定的方式转换并绑定

                       到控制器类中的方法参数上。

          #说明这里的“以一定的方式”应该指的是什么?过段时间买个比较厚的书看看。

    #原理概括:Spring MVC将ServletRequest对象传递给DataBinder(数据绑定组件),将控制

                   器的入参传给DataBinder(数据绑定组件),DataBinder(数据绑定组件)调用

                   ConversionService组件进行数据类型转换、格式化等操作,并将处理后的数据给

                   控制器参数,然后调用Validator组件,并对相应的数据进行校验,并返回绑定后

                   的数据对象,最后再次赋给控制器参数。(以上这个结论说得有点含糊,稍后补充

    -----------------------------------------------------------------------------------------------------------------------------------------

    #建一个SpringMVC工程

          1)在pom.xml中添加依赖,保证其有logging/aop/beans/context/core/expression/web/webmvc等.jar包。

          2)建一个resources文件夹,并建一个spring-mvc.xml文件,配置组件扫描器,即在其中component-scan

    并让其对控制器进行扫描,另外,配置一个视图解析器。

          3)在web.xml中配置字符过滤器和前端控制器。

          4)在src下建一个controller包,并在其中定义一个控制器。

              疑问:handlerMapping在哪里体现呢?之前是用bean组件进行一个注入,而今直接用注解了,而注解加了之后紧接着用反射找到路径对应的控制器类,其中使用component-scan

    进行一个扫描包

    -----------------------------------------------------------------------------------------------------------------------------------------

     #默认数据类型和基本数据类型的绑定

             即控制器方法中用(HttpServletRequest request) 和(@RequestParam(value="user_id" Integer id))

             说明:控制器的形参和请求的参数类型(如jsp页面中的)对应

              疑问:简单类型要用什么?包装类型何时用?

                        简单类型一般用来定义变量的,但是不能去调用方法,而包装类型可以调用方法,另外,Integer这种

               类型默认为null,而int默认为0,而在实际开发和使用中,0是有意义的,而null是无意义的,所以,用Null更

               容易识别和发现问题;

    -----------------------------------------------------------------------------------------------------------------------------------------

     #绑定POPJ类型(一个javaBean)

               即POPJ和前台表单是绑定的,同时也是和控制器是相对应的。

    -----------------------------------------------------------------------------------------------------------------------------------------

     #特殊类型(如日期类型等)          

               实现Converter或Formatter接口来实现转换,另外,在配置文件中进行相应的配置。

    -----------------------------------------------------------------------------------------------------------------------------------------

    # 复杂数据的绑定(集合、数组)

                前台和控制器的参数进行绑定;笔记不完整,后续待补充。

          

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    认识Python
    MongoDB
    K8S搭建过程随笔_证书CFSSL
    K8S搭建过程随笔_系统初始化
    zabbix4.2Proxy安装文档
    Zabbix4.2Server端部署
    单节点FastDFS与Nginx部署
    Windows Server 2016分层式存储,使用PowerShell修改底层介质类型
    kill命令和killall命令
    Nuget使用时遇到的问题,Solved
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/10345826.html
Copyright © 2011-2022 走看看