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. keras实例学习-双向LSTM进行imdb情感分类

    源码:https://github.com/keras-team/keras/blob/master/examples/imdb_bidirectional_lstm.py 及keras中文文档 1. ...

  2. 【Java】-NO.16.EBook.4.Java.1.012-【疯狂Java讲义第3版 李刚】- Swing

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.011-[疯狂Java讲义第3版 李刚]-  Swing Style:EBook Series:Jav ...

  3. DataFrame修改列名

    把Dataframe格式的列名'class1'修改为'class_label' data.rename(columns={"label":"true_label" ...

  4. java面试中经常会被问到分布式面试题

    1.Dubbo的底层实现原理和机制 –高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 Dubbo缺省协议采用单一长连接和NIO异步通讯, 适合于小数据量大并发的服务调用,以及服务消费者机 ...

  5. centos6.6 7 vim编辑器中文乱码

    编辑~/.vimrc文件,加上如下几行: set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 ...

  6. iOS 新浪微博-4.0 OAuth授权

    申请开发者 想要拉到到新浪微博的数据,首先让自己成为开发者.申请成为开发者账号很简单,只要有新浪微博的账号即可. 申请地址:http://open.weibo.com/ 在开发的过程中,我们需要拿到几 ...

  7. vue滚动事件销毁,填坑

    eg:富文本的头部固定,当滚轮大于200时(举例)固定在浏览器头部,距离大于富文本时,头部消失 效果: 在富文本下面加一个空div 这么写: mounted() { $(window).scroll( ...

  8. cocos2d-x JS 纯代码实现人物头像裁剪

    有时候为了方便会直接用颜色层和过渡层来显示一些信息,但层只有方角没有圆角不太美观,于是我用剪切节点实现了一个圆角层.方便以后使用.   当然,如果使用Cosos Studio 操作会更好一些,省去了坐 ...

  9. cocos2dx 3.x 网络循环接收数据(RakNet::Packet* packet)单步网络接收

    void FriendFightLayer::update(float dt) { dealWithPacket(dt); if (m_isNeedSwitchToLobby) { PublicMet ...

  10. MYSQL5.6.X 非在线安装版(解压版)安装过程

    一.卸载以前旧版本(本人5.5版本) 1.关闭MySQL服务 以管理员身份运行cmd,执行以下命令: net stop mysql 或者右键我的电脑,在管理——服务——停止MySQL 2.卸载MySQ ...