SpringMVC之数据绑定
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之数据绑定的更多相关文章
- SpringMvc的数据绑定流程
在SpringMvc中会将来自web页面的请求和响应数据与controller中对应的处理方法的入参进行绑定,即数据绑定.流程如下: -1.SpringMvc主框架将ServletRequest对象及 ...
- SpringMVC之 数据绑定-1
SpringMVC学习系列(4) 之 数据绑定-1 在系列(3)中我们介绍了请求是如何映射到一个action上的,下一步当然是如何获取到请求中的数据,这就引出了本篇所要讲的内容—数据绑定. 首先看一下 ...
- SpringMVC 的数据绑定
1.数据自动绑定 SpringMVC 框架支持不需要任何数据绑定的注解直接将表单参数绑定到我们的执行方法的参数上. 表单参数:包括 POST 以及 GET 发送过来的参数 就是以内容类型为:encty ...
- SpringMVC框架——数据绑定
Spring MVC 数据绑定 使用POJO绑定参数 entity package com.sunjian.entity; /** * @author sunjian * @date 2020/3/1 ...
- SpringMVC之数据绑定(转)
到目前为止,请求已经能交给我们的处理器进行处理了,接下来的事情是要进行收集数据啦,接下来我们看看我们能从请求中收集到哪些数据, 1.@RequestParam绑定单个请求参数值: 2.@PathVar ...
- springMVC学习总结(三)数据绑定
springMVC学习总结(三)数据绑定 一.springMVC的数据绑定,常用绑定类型有: 1.servlet三大域对象: HttpServletRequest HttpServletRespons ...
- springMVC能做什么,做j2ee时候要考虑什么
转载: http://jinnianshilongnian.iteye.com/category/231099 [置顶] 跟我学SpringMVC目录汇总贴.PDF下载.源码下载 博客分类: 跟开涛学 ...
- 扩展SpringMVC以支持绑定JSON格式的请求参数
此方案是把请求参数(JSON字符串)绑定到java对象,,@RequestBody是绑定内容体到java对象的. 问题描述: <span style="font-size: x-sma ...
- 【SSH系列】深入浅出SpringMvc+入门Demo
Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Strut ...
随机推荐
- 通过thriftserver的beeline/jdbc等方式连接到SparkSQL
thriftserver和beeline的简单配置和使用启动thriftserver: 默认端口是10000 ,可以修改 $ ./${SPARK_HOME}/sbin/start-thriftserv ...
- 【Linux】-NO.8.Linux.4.Command.1.001-【Common Command】-
1.0.0 Summary Tittle:[Linux]-NO.8.Linux.4.Command.1.001-[Common Command]- Style:Linux Series:Command ...
- python3编写发送四种http请求的脚本
python3编写发送http请求的脚本 使用requests包: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html ...
- CentOS下用yum命令安装jdk【转】
一.使用yum命令安装 1.查看是否已安装JDK,卸载 [root@192 ~]# yum list installed |grep java java-1.8.0-openjdk.x86_64 ...
- javaIO流
File类(File类的概述和构造方法) A:File类的概述 File更应该叫做一个路径 文件路径或者文件夹路径 路径分为绝对路径和相对路径 绝对路径是一个固定的路径,从盘符开始 相对路径相对于某个 ...
- PyQT5速成教程-1 简介与环境搭建
本文由 沈庆阳 所有,转载请与作者取得联系! PyQt简介 一个良好的界面是人机交互中十分重要的一环. Python作为脚本语言,起初并未拥有GUI开发的部分.但随着其开放的扩展性,使得Python不 ...
- caffe配置文件
一.数据层及参数 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成.所有的参数都定义在caffe. ...
- 通过Response下载。
之前一直在找js下载的插件,后来发现下载必须通过java后台处理,什么write(),open(),close()之类的方法.如果直接是通过<a>标签倒是简单的,直接将路径摆放在上面就可以 ...
- Vuejs核心思想学习笔记
习Vue已经有一段时间了,但未对其核心思想作自己的总结和理解 Vue核心思想有两个 : 数据驱动和组件化(系统组件) 数据驱动 数据驱动目的是让数据和DOM保持同步, 只要修改了data数据,DOM就 ...
- SVN—使用总结
SVN使用教程总结 为什么要使用SVN? 在程序的编写过程中,每个程序员都会负责开发一个或多个模块,且开发中会生成很多不同的版本, 这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版 ...