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页面中的)对应

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

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

#绑定POPJ类型(一个javaBean)

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

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

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

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

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

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

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

SpringMVC之数据绑定的更多相关文章

  1. SpringMvc的数据绑定流程

    在SpringMvc中会将来自web页面的请求和响应数据与controller中对应的处理方法的入参进行绑定,即数据绑定.流程如下: -1.SpringMvc主框架将ServletRequest对象及 ...

  2. SpringMVC之 数据绑定-1

    SpringMVC学习系列(4) 之 数据绑定-1 在系列(3)中我们介绍了请求是如何映射到一个action上的,下一步当然是如何获取到请求中的数据,这就引出了本篇所要讲的内容—数据绑定. 首先看一下 ...

  3. SpringMVC 的数据绑定

    1.数据自动绑定 SpringMVC 框架支持不需要任何数据绑定的注解直接将表单参数绑定到我们的执行方法的参数上. 表单参数:包括 POST 以及 GET 发送过来的参数 就是以内容类型为:encty ...

  4. SpringMVC框架——数据绑定

    Spring MVC 数据绑定 使用POJO绑定参数 entity package com.sunjian.entity; /** * @author sunjian * @date 2020/3/1 ...

  5. SpringMVC之数据绑定(转)

    到目前为止,请求已经能交给我们的处理器进行处理了,接下来的事情是要进行收集数据啦,接下来我们看看我们能从请求中收集到哪些数据, 1.@RequestParam绑定单个请求参数值: 2.@PathVar ...

  6. springMVC学习总结(三)数据绑定

    springMVC学习总结(三)数据绑定 一.springMVC的数据绑定,常用绑定类型有: 1.servlet三大域对象: HttpServletRequest HttpServletRespons ...

  7. springMVC能做什么,做j2ee时候要考虑什么

    转载: http://jinnianshilongnian.iteye.com/category/231099 [置顶] 跟我学SpringMVC目录汇总贴.PDF下载.源码下载 博客分类: 跟开涛学 ...

  8. 扩展SpringMVC以支持绑定JSON格式的请求参数

    此方案是把请求参数(JSON字符串)绑定到java对象,,@RequestBody是绑定内容体到java对象的. 问题描述: <span style="font-size: x-sma ...

  9. 【SSH系列】深入浅出SpringMvc+入门Demo

    Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Strut ...

随机推荐

  1. 多线程——newFixedThreadPool线程池

    newFixedThreadPool线程池: 理解: 1.固定线程数的线程池. 2.通过Executors中的静态方法创建:     public static ExecutorService new ...

  2. 关于spark的mllib学习总结(Java版)

    本篇博客主要讲述如何利用spark的mliib构建机器学习模型并预测新的数据,具体的流程如下图所示: 加载数据 对于数据的加载或保存,mllib提供了MLUtils包,其作用是Helper metho ...

  3. 50A

    #include <iostream> using namespace std; int main() { int m, n; cin>>m>>n; cout< ...

  4. 实践 : Ubuntu 上 Testlink 部署

    1.安装apache sudo apt-get install apache2 2. sudo /etc/init.d/apache2 restart 测试: Http:\localhost or I ...

  5. idc函数大全

    A80_addcA80_addcixA80_addciyA80_addixA80_addiyA80_cmpdA80_cmpiA80_im0A80_im1A80_im2A80_jrcA80_jrncA8 ...

  6. cocos2d JS 错误异常抛出捕获和崩溃拦截

    Error对象 一旦代码解析或运行时发生错误,JavaScript引擎就会自动产生并抛出一个Error对象的实例,然后整个程序就中断在发生错误的地方. Error对象的实例有三个最基本的属性: nam ...

  7. web.xml文件的简单说明

    在javaEE提供的tutorial中的hello1中的web.xml文件写到: <?xml version="1.0" encoding="UTF-8" ...

  8. java数据结构和算法编程作业系列篇-数组

    /** * 编程作业 2.1 向highArray.java程序(清单2.3)的HighArray类添加一个名为getMax()的方法,它返回 数组中最大关键字的值,当数组为空时返回-1.向main( ...

  9. SQL 跟据出生日期求年龄

    最近做项目时遇到一个问题. 跟据人员的生日与当前日期进行比较求出该人员实际年龄.这个看上去比较简单的问题,其实不细心去看也会有很多问题. 先看第一种: 一张人员信息表里有一人生日(Birthday)列 ...

  10. python中impyla包报'TSocket' object has no attribute 'isOpen'错误

    经搜索得知,是thrift-sasl的版本太高了(0.3.0),故将thrift-sasl的版本降级到0.2.1 pip install thrift-sasl==0.2.1 经测试impyla 可以 ...