为了账号安全,请及时绑定邮箱和手机立即绑定
  • RESTful 风格的重点:

    构成: 资源 -- 表现层 -- 状态转化

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

    2019-08-14

  • RESTful 风格的GET、POST、PUT、DELET请求接口,常见以ID来标识某个资源,并通过查找 ID 来达到获取目标资源或删改某个数据的目的

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

    2019-08-14

  • RESTful 状态转化 :

    GET 、POST、PUT、DELETE 的特点
    查看全部
    0 采集 收起 来源:RESTful小扩展

    2019-08-14

  • RESTful 表现层的内容<br/>
    查看全部
    0 采集 收起 来源:RESTful小扩展

    2020-09-11

  • SpringMVC  数据绑定的扩展性
    查看全部
    0 采集 收起 来源:介绍

    2019-08-14

  • springMVC
    查看全部
  • 资源,表现层,状态转化


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

    2019-07-15

  • 同属性多对象绑定

    @InitBinder(“a”)

    public void initA(WebDataBinder binder){

    binder.setFieldDefaultPrefix("a.");

    }

    @InitBinder("b")

    public void initB(WebDataBinder binder){

    binder.setFieldDefaultPrefix("b.");

    }

    查看全部
  • 本章主要介绍SpringMVC提供的PropertyEditor和自定义Formatter、Converter的使用场景、解决的实际的问题以及Formatter和Converter的简单对比和选型依据

    知识点1:

    【a】PropertyEditor:属性编辑器,一般用于类型转换,它是一个接口,有很多实现类,常用直接下级实现类是PropertyEditorSupport,该类常用方法有。

    setValue(Object value):一般自定义类型转换器调用并传入一个实体类对象。

    getValue():一般通过自定义类型转换器对象调用该方法就可以获得实体类对象。

    setAsText(String text):通常传入一个字符串,并对该字符串进行解析,然后对实体类属性进行赋值。

    实现PropertyEdito接口时,通常不直接实现接口PropertyEditor,而是继承PropertyEditorSupport类进行扩展

    案例:创建一个名为MyPropertyEditor的自定义类型转换器,并继承PropertyEditorSupport,这样就可以使用接口PropertyEditor提供的方法,实现setAsText(String text)方法,该方法里创建User对象,并对传进来的字符串用逗号分隔成字符串数组,把字符串数组第0个元素赋值给User对象的name,字符串数组的第1个元素赋值给User对象的age,再通过setValue(Object obj),把User对象传入,这样做的目的,就可以和前端约定,第一个字符在逗号前面的传名字,第二个字符在逗号后面的传年龄,这样通过自定义的Editor就可以使用User对象进行接收。

    扩展:getValue()方法源码实现——它会返回一个Object对象,源码中返回的是一个value属性,而这个value就是PropertyEditorSupport的Object类型的属性

    https://img1.sycdn.imooc.com//5d1de6a70001010108040358.jpg

    【b】Formatter:格式化器,它是一个接口Formatter<T>,它继承Printer<T>和Parser<T>,他有很多实现类(AbstractNumberFormatter、CurrencyFormatter货币转换器、DateFormatter日期的转换、InstanceFormatter、NumberFormatter、PercentFormatter百分比转换器等),这里拿CurrencyFormatter讲解(货币转换器)(DateFormatter是做日期的格式化转换器,PercentFormatter是做百分比的格式化转换器)。

    案例:创建自定义格式化类型转化器FormatterTest

    test1()方法中,创建CurrencyFormatter对象,该对象调用setFractionDigits(2),该方法是用来保留小数点后几位的,该对象再调用setRoundingMode(RoundingMode.CEILING),该方法是用作舍入操作,celling表示四舍五入,接着通过Assert类的assertEquals()断言方法,拿123.13和123.125进行断言。


    案例2:将BigDecimal("123")格式化为字符串"$123.00"展示,CurrencyFormatter的parse方法返回值是BigDecimal,print方法返回值是String。


    【c】Converter:格式化器,它也是接口,该接口有两个泛型Converter<S,T>(其中<S>是source的类型,<T>是target的类型),它的实现类很多,例如NumberToCharacterConverter,把数字转换为字符,这里使用StringToBooleanConverter进行讲解,它实现了Converter<String,Boolean>接口,而且修饰的类使用的是final修饰符而不是public,原因是防止该类被修改、被继承,Converter接口不让实现类进行扩展,而Formatter不一样,它可以使用CurrentFormatter继承Formatter接口的实现类AbstractNumberFormatter,可以进行扩展。

    案例:首先在dispatcher-servlet.xml中把StringToBooleanConverter注入,然后再配置<mvc:annotation-driven conversion-service="stringToBooleanConverter"/>


    总结:内置的CustomDateEditor(它继承了PropertyEditorSupport),内置的CurrencyFormatter(它继承了AbstractNumberFormatter),内置的StringToBooleanConverter(它实现了Converter<String,Boolean>),就扩展性来说,这里所说扩展性都是Spring内置扩展性,Converter不可扩展,PropertyEditor一般局部使用配合webdatabinder使用,Formatter全局局部都可以,全局是通过Spring注入的方式,局部就像单元测试那样,new一个Formatter,然后调用它的方法,Converter全局和局部都可以,全局也是通过Spring注入的方式,局部也是自己实现Converter接口,写一个实现,然后new这个实现类。


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

    2019-07-04

  • SpringMVC——xml的数据绑定

    案例:绑定xml数据类型,也是通过RequestBody数据区获取xml数据

    https://img1.sycdn.imooc.com//5d1db34f000103c405580138.jpg

    步骤1:该功能需要如下依赖,该包完成xml数据的序列化和反序列化功能。

    https://img1.sycdn.imooc.com//5d1db3470001b07604130120.jpg


    步骤2:实体类中使用到两个注解,分别为@XmlRootElement(name="admin")给类取别名和@XmlElement(name="name")用在属性的get方法上,,如下图

    https://img1.sycdn.imooc.com//5d1db3e20001ce8105480307.jpg

    XML数据:

    https://img1.sycdn.imooc.com//5d1db40800019ba407120323.jpg

    输出:

    https://img1.sycdn.imooc.com//5d1db42a0001292403480162.jpg




    查看全部
  • 本章主要介绍Json、Xml的数据绑定以及坑

    知识点1:SpringMVC——Json数据绑定

    案例:Controller中方法参数为User类型对象,传输Json时,Json数据被放到RequestBody里,所以需要在User前+@RequestBody注解(它会把RequestBody数据区的内容反序列化为该参数的对象),这里使用DHC插件,该插件可以模拟各种请求,这里请求为POST,还需要把Content-Type,改成application/json如下

    https://img1.sycdn.imooc.com//5d1dafc10001f7a904910121.jpg





    返回值:https://img1.sycdn.imooc.com//5d1db0770001812605420247.jpg


    JSON通过如下进行支持:也就是将JSON数据绑定到实体中

    https://img1.sycdn.imooc.com//5d1db0b50001752204950152.jpg


    查看全部
  • SpringMVC的RESTful实现方式

    【1】起源:REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的,他同时是apache基金会的第一人主席,HTTP1.0和HTTP1.1版本的设计者之一

    【2】名称:Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer(表现层、状态、转化)的缩写,如果一个架构符合REST原则,就称它为RESTful架构(完整全称:Resource Representational State Transfer)。

    【3】资源-Resource:例如一个文本、图片、服务、音频、网络上的一个具体信息,可以通过统一资源定位符uri指向它。

    【4】表现层-Representational:资源是一种信息实体,可以有多种的外在表现形式,资源的外在表现形式称为Representational,即表现层,例如一个文本,它的表现形式可以有txt、html、xml、json、二进制,图片的表现形式可以有jpg、png,uri代表实体资源的位置,并不代表表现形式,具体的表现形式通过http协议的content-type和accept这两个字段进行描述。

    案例:理解RESTful表现层——Representational

    book是一个资源,通过http的content-type获取不同的格式

    【5】状态转化

    【6】设计


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

    2019-07-01

  • PropertyEditor的应用

    案例:Controller中有个方法,并且该方法的参数为Date类型。如下图,此时如果直接通过url传入日期数据,会报400错误,说明参数是有问题的。

    https://img1.sycdn.imooc.com//5d14aabf0001b22d03490132.jpg

    https://img1.sycdn.imooc.com//5d14aae80001d28105730195.jpg

    CustomDateEditor类:MVC编码中,该Editor经常被注册,通过使用binder.registerCustomEditor(这个binder就是之前admin和user

    拥有同样的name和age,方法里有个WebDataBinder类型的binder)

    registerCustomEditor():它是WebDataBinder对象的方法,该方法在它的父类DataBinder中继承来的,该方法中通过getPropertyEditorRegistry()获得PropertyEditorRegistry对象,它就代表一个注册,PropertyEditorRegistry是一个接口,该接口有很多实现类,其中一个PropertyEditorRegistrySupport实现类,该类有一个Map类型的defaultEditors和customEditors,defaultEditors是这个类创建的时候,SpringMVC自动生成defaultEditorscustomEditors需要人工手动进行注册,所谓注册过程就是把Map进行一个put的操作,这里可以通过createDefaultEditors()了解它defaultEditors是如何搜索的,首先对defaultEditors成员变量进行声明,声明成一个HashMap长度为64,然后会放入很多defaultEditors

    https://img1.sycdn.imooc.com//5d14acc1000190e608460102.jpg

    https://img1.sycdn.imooc.com//5d14ad4d000174a004370142.jpghttps://img1.sycdn.imooc.com//5d14adbb00011dda06400360.jpghttps://img1.sycdn.imooc.com//5d14aef000010c5d07620452.jpg对于customEditors:下面图片中的上面的registerCustomEditor方法是下面registerCustomEditor方法的重载,中间差了一个参数,该参数就是String propertyPath参数,如果上面的方法传入了一个null,就会调用下面的方法。

    https://img1.sycdn.imooc.com//5d14afa30001880f09710410.jpg对于Date数据类型绑定:

    通过@InitBinder("date1")注解,并且在initDate1方法中WebDataBinder对象调用registerCustomEditor(),把这个东西进行注册,因为默认注册是没有Date类型的,但是PropertyEditorSupport进行了扩展,支持很多子类,并把Date类型,转换成CustomDateEditor类型,通过CustomDateEditor的构造器了解,一个参数是DateFormat一个参数是allowEmpty类型,这里new一个SimpleDateFormat

    https://img1.sycdn.imooc.com//5d14b1410001030504970191.jpg

    https://img1.sycdn.imooc.com//5d14b1410001d01b06570303.jpg


    https://img1.sycdn.imooc.com//5d14b20100013b8208100241.jpg

    https://img1.sycdn.imooc.com//5d14b2010001190b06670166.jpg


    查看全部
  • 本章主要介绍SpringMVC提供的PropertyEditor和自定义Formatter、Converter的使用场景、解决的实际的问题以及Formatter和Converter的简单对比和选型依据

    知识点1:自定义类型转换器

    【a】PropertyEditor:属性编辑器,一般用于类型转换,它是一个接口,有很多实现类,常用实现类是PropertyEditorSupport,该类常用方法有,setValue(Object value)、getValue(){返回的是Object类型的对象,这里返回的是通过setValue传入的对象}、setAsText(String text),实现自定义PropertyEditor,通常不直接实现接口PropertyEditor,而是继承PropertyEditorSupport进行扩展

    案例:创建一个名为MyPropertyEditor的自定义转换器,并继承PropertyEditorSupport,实现setAsText(String text)方法,该方法里创建User对象,并对传进来的字符串用逗号分隔成字符串数组,把字符串数组第一个元素赋值给User对象的name,字符串数组的第二个元素赋值给User对象的age,再通过setValue(Object obj),把User对象传入,这样做的目的,前端就可以通过逗号前传name逗号后传age传参数了。

    https://img1.sycdn.imooc.com//5d143b3a0001372a10590611.jpg

    【b】Formatter:Formatter<T>格式化器,它是一个接口,继承Printer<T>和Parser<T>,他有很多实现类,这里拿CurrencyFormatter讲解(货币转换器)(DateFormatter是做日期的格式化转换器,PercentFormatter是做百分比的格式化转换器)。

    案例:创建自定义格式化类型转化器FormatterTest

    test1()方法中,创建CurrencyFormatter对象,该对象调用setFractionDigits(2),该方法是用来保留小数点后几位的,该对象再调用setRoundingMode(RoundingMode.CEILING),该方法是用作舍入操作,celling表示四舍五入,接着通过Assert类的assertEquals()断言方法,拿123.13和123.125进行断言。

    https://img1.sycdn.imooc.com//5d1477230001bc2509680211.jpg

    案例2:将BigDecimal("123")格式化为字符串"$123.00"展示,CurrencyFormatter的parse方法返回值是BigDecimal,print方法返回值是String。

    https://img1.sycdn.imooc.com//5d14772d000126b209050180.jpg

    【c】Converter:格式化器,它也是接口,该接口有两个泛型Converter<S,T>(其中<S>是source的类型,<T>是target的类型),它的实现类很多,例如NumberToCharacterConverter,把数字转换为字符,这里使用StringToBooleanConverter进行讲解,它实现了Converter<String,Boolean>接口,而且修饰的类使用的是final修饰符而不是public,原因是防止该类被修改、被继承,Converter接口不让实现类进行扩展,而Formatter不一样,它可以使用CurrentFormatter继承Formatter接口的实现类AbstractNumberFormatter,可以进行扩展。

    案例:首先在dispatcher-servlet.xml中把StringToBooleanConverter注入,然后再配置<mvc:annotation-driven conversion-service="stringToBooleanConverter"/>

    https://img1.sycdn.imooc.com//5d14802b0001265711470216.jpg

    https://img1.sycdn.imooc.com//5d1480bd000137ef08130183.jpghttps://img1.sycdn.imooc.com//5d1480e000013f1e06500329.jpghttps://img1.sycdn.imooc.com//5d1483130001471e06550155.jpg总结:内置的CustomDateEditor(它继承了PropertyEditorSupport),内置的CurrencyFormatter(它继承了AbstractNumberFormatter),内置的StringToBooleanConverter(它实现了Converter<String,Boolean>),就扩展性来说,这里所说扩展性都是Spring内置扩展性,Converter不可扩展,PropertyEditor一般局部使用配合webdatabinder使用,Formatter全局局部都可以,全局是通过Spring注入的方式,局部就像单元测试那样,new一个Formatter,然后调用它的方法,Converter全局和局部都可以,全局也是通过Spring注入的方式,局部也是自己实现Converter接口,写一个实现,然后new这个实现类。

    https://img1.sycdn.imooc.com//5d14856b00013f3a08550429.jpg

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

    2019-06-27

  • 本章主要介绍Json、Xml的数据绑定以及坑

    知识点1:SpringMVC——Json数据绑定

    案例:Controller中方法参数为User类型对象,传输Json时,Json数据被放到RequestBody里,所以需要在User前+@RequestBody注解(它会把RequestBody数据区的内容反序列化为该参数的对象),这里使用DHC插件,该插件可以模拟各种请求,这里请求为POST,还需要把Content-Type,改成application/json如下

    https://img1.sycdn.imooc.com//5d1361a10001258004820171.jpg

    https://img1.sycdn.imooc.com//5d1362ff000136c204380297.jpg

    https://img1.sycdn.imooc.com//5d1362ff0001114e11870590.jpg

    https://img1.sycdn.imooc.com//5d13633d00018fa409770351.jpg

    返回值:

    https://img1.sycdn.imooc.com//5d1363560001b46205940259.jpg

    JSON通过如下进行支持

    https://img1.sycdn.imooc.com//5d1363c10001569904610116.jpg

    查看全部

举报

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下载
官方微信
友情提示:

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