为了账号安全,请及时绑定邮箱和手机立即绑定
  • 1、PropertyEditor:在类中进行局部使用

    2、Formatter:全局,或者使用new Formatter的方式进行局部使用,只能转换String到其他类型;

    3、Converter:全局或局部,和Formatter类似,但Converter的源对象不仅仅是String,而可以自行进行定义

    查看全部
    0 采集 收起 来源:介绍

    2018-07-11

  • 1、同Formatter类似,Converter自定义时实现Converter接口,指定泛型<S, T>,即源对象和目标对象,然后实现convert方法;

    2、同样在xml中进行配置,将自定义转换器注入FormattingConversionServiceFactoryBean,再将该bean作为mvc的conversion-service

    3、不同在于,Formatter只能将String作为源对象,而Converter则可以自行定义

    查看全部
    0 采集 收起 来源:Converter的应用

    2018-07-11

  • 1、自定义Formatter需要实现Formatter接口,并指定泛型(转换后的类型,该视频例中即为Date),实现其parse方法

    2、配置bean,将自定义Formatter注入到Spring的FormattingConversionServiceFactoryBean类中,采用xml配置方式,同时将该bean作为mvc的conversion-service(如截图)

    3、注意,这种规范器是全局的,Formatter适用于转换String为其他类型,所以一般用在web层,将请求体中的内容进行转换

    查看全部
    0 采集 收起 来源:Formatter的应用

    2018-07-11

  • 之前几个章节我们提到了在处理同级对象的同名属性时,使用注解 @InitBinder 来设置不同的前缀以作区别,这里我们同样用到了这个注解,这次来大概梳理一下。


    先看下 @InitBinder 注解的大概说明:用来标记某些方法,初始化WebDataBinder来处理参数。那么我们可以继续看下 WebDataBinder,说明是“为了处理数据绑定,用来将请求中的参数转化为JavaBean对象”,所以我们也就用到了该对象的一个方法registerCustomEditor,而该方法的一个重要的参数类型就是 PropertyEditor,这个接口说明的作用是“提供各种方式展示属性值”


    这里涉及到的两个接口 PropertyEditor 和 PropertyEditorRegistry,显然后者是前者的注册器。在注册器的实现类 PropertyEditorRegistrySupport 中我们可以看到其属性就有 defaultEditors 和 customEditors,从命名就可以看出,如果我们使用自定义规则,就需要将自定义的PropertyEditor,通过 registerCustomEditor() 将其注册到 customEditors 中才能使用。那么有两种方式,第一种是我们自定义类继承PropertyEditorSupport间接实现PropertyEditor接口,这在上个章节视频《7-1 介绍》的1:17前后进行了说明;第二种方式就是实际上spring提供了一些简单的实现类,比如日期的编辑器类CustomDateEditor,也就是我们如截图所示意用到的。


    查看全部
  • 小结:

    1、每个uri代表一种资源

    2、客户端和服务器之间,传递这种资源的某种表现层

    3、客户端通过http动词,对服务器端资源进行操作,实现“表现层状态转化”

    查看全部
    0 采集 收起 来源:RESTful小扩展

    2018-07-10

  • GET:获取资源

    POST:创建新资源

    PUT:创建或更新资源

    DELETE:删除资源

    查看全部
    0 采集 收起 来源:RESTful小扩展

    2018-07-10

  • uri代表资源,所以要避免动词,如截图中的show就不应该出现

    查看全部
    0 采集 收起 来源:RESTful小扩展

    2018-07-10

  • 把uri当成一种资源,而资源作为信息实体,可以有多种外在表现形式,如一个文本可以对外表现为html、json、二进制等,如何通过uri获取这个资源的表现,则是依靠htpp协议的content-type和accept

    查看全部
    0 采集 收起 来源:RESTful小扩展

    2018-07-10

  • 同样对于xml类型的数据绑定,和json类似,在方法形参上增加注解 @RequestBody,并且在Post请求时请求头为Content-Type: application/xml。这样SpringMVC就会调用对应的解析器去解析,所以我们同时还需要在pom中添加xml解析的相关依赖 spring-oxm ,同时如截图所示,将xml对应的实体类进行注解标注,根节点放在类名,并使用name属性设定对应的xml中的根节点名称,其他节点同理。

    查看全部
  • SpringMVC接受http中body的json格式内容为参数,在方法的形参前加上注解 @RequestBody,用以调用解析器进行转换,值得注意的是:

    1、需要额外添加jackson的依赖

    2、需要在dispatcher-servelt.xml中<mvc:annotation-driven />,相当于默认配置了部分HandlerMapping和HandlerAdapter,如此处需要的RequestMappingHandlerAdapter(参考:https://blog.csdn.net/qq_18675693/article/details/52214056)

    3、post请求时,请求头信息务必添加 Content-Type: application/json

    查看全部
  • map的方式和list类似,不同的在于索引不是数字,而是key

    查看全部
  • 在SpringMVC中绑定Set数据类型,接口的参数形式和绑定list是类似的,都是通过索引。但是不同的在于,Set必须初始化,如图必须先包含了初始化对象,也即是说必须提前手动分配好空间,才能进行赋值,而使用List则没有这个要求。


    另外的一个坑在于,初始化Set时需要留意对象的equals方法,假如我们在提前分配两个对象空间时,两个对象通过equals方法判断为相同,则我们期望的Set的size为2,最后实际因为去重变成了1,导致在数据绑定时很容易出现数组越界的异常。

    查看全部
  • List类型的传参,使用某个类进行封装,以xxx.xxList[x]类似方式进行数据绑定,注意索引按顺序分别填写参数,否则容易创建空值的对象到List中。

    查看全部
  • 对于两个不同的类,遇到同名属性的情况,SpringMVC会默认针对所有类的同名属性赋值,如截图中的age。如果想要区别对待,直接使用xxx.xxx的形式是不行的,还需要在对应的Controller中定义方法,以 @InitBinder 注解标记属性名,形参使用 WebDataBinder 来定义请求参数前缀,如截图。

    查看全部
  • 对象类型的数据绑定,直接请求时对应其属性即可,不必添加前缀,如截图中User类的属性name,则直接在请求中使用name=xxx,而不是使用user.name=xxx的形式。但如果是想对对象中对象的属性再赋值的话,则需要使用xxx.xxx的形式,如下的contactInfo.phone表示将User类中的ContactInfo类的phone属性赋值。

    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程前需要具备SpringMVC的基础知识,可以观看慕课网的《Spring MVC起步》课程;同时小伙伴们需要对Servlet相关知识要有一定掌握;本课程选用SpringMVC4.0版本。
老师告诉你能学到什么?
1、SpringMVC常用数据结构的绑定 2、SpringMVC数据绑定实际工作中容易踩到的坑 3、注解@InitBinder、@RequestParam、@RequestBody、@ResponseBody、@PathVariable注解的使用 4、PropertyEditor、Formatter、Converter。自定义格式化工具和类型转换器 5、RESTful扩展

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!