为了账号安全,请及时绑定邮箱和手机立即绑定
  • RESTful设计

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

    2018-12-14

  • RESTful状态转化

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

    2018-12-14

  • URI:统一资源定位符

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

    2018-12-14

  • Restful名称

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

    2018-12-14

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

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

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


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

    2018-12-14

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

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

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

    对于一个controller中多个方法需要做前台传过来的日期字符串做日期格式转换操作,可以写一个formatter继承Formatter,然后写一次字符串转日期的操作,最后在dispatcherServlet中配置一下即可。controller中的所有方法参数就可以直接写成日期格式类型,formatter可以帮忙做字符串转日期格式的操作。

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

    2018-12-14

  • 在请求的Url中设置日期类型的字符串传递的时候,报400错,说明日期绑定失败,如何使得Url中的日期与controller方法中入参类型为Date的对象绑定呢?这时,我们就需要注册自定义属性编辑器。如图,@InitBinder("date1")限定参数为date1,通过Url请求时,先执行有此注解的方法,该方法,向数据绑定器注册了新的自定义的属性编辑器,将Date类型的value设置为SimpleDateFormat("yyyy-MM-DD"),假如Url传递的参数为date1=2020-02-20,那么就会将Date参数直接格式化为yyyy-MM-DD格式,并作为controller方法的参数。完成绑定,可见,通过注解实现自定义参数绑定只需要注意两点:①使用注解,绑定传递的参数,形如@InitBinder("date1"),绑定的参数为date1,②基于此注解的方法,必须有一个参数,且参数类型为WebDataBinder,通过调用该对象的registerCustomEdior(_,_)实现自定义属性转换的注册。

    查看全部
  • 使用PropertyEditor实现绑定时的类型转换:(数据类型转换器) 请求参数string到参数类型(也可能是任意类型)的类型转换,都是使用PropertyEditor类实现的string到任意参数的转换的。但是PropertyEditor不能实现任意对象到任意对象之间的转换,比如我们常见的Long时间戳到Date类型的转换时办不到的。

    1、PropertyEditor:在类中进行局部使用

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

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


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

    2018-12-14

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

    xml 数据绑定:必须在实体类里面加注解@XmlRootElement,在属性上添加XmlElement ex:@XmlElement(name="age"):此时就会将xml 里面对应的age数据添加到实体类中的age属性中去。 2、xml数据绑定需要“spring-oxm”这个jar包提供支持

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


    1.在参数中加注解@RequestBody( @RequestBody User user)。@RequestBody是把传过来的Json数据反序列化绑定到控制器参数上

    2.chrome DHC插件,构建post包等

    3.json依赖的包:

    <groupId>org.codehuas.jackson</groupId>

    <artifactId>jackson-mapper-asl</artifactId>

    4.需要在dispatcher-servelt.xml中<mvc:annotation-driven />,相当于默认配置了部分HandlerMapping和HandlerAdapter,如此处需要的RequestMappingHandlerAdapter


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


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

    Set我们一般用来排重 使用Set的时候需要先进行初始化 要使用Set的排重功能必须在对象中覆写hashcode和equals方法。 SpringMVC对Set支持并不太好,初始化进行排重时会导致size变小,致使无法接受更多的数据而抛出异常,所以我们开发一般优先使用List。

    查看全部
  • Controll中List参数不能直接传值,需要一个包裹类,类中有需要传的List作为属性和对应的get,set方法。 传值时用users[0].name = Tom    users[1].name = Luce 一定不要跳跃传值,如users[0].name = Tom&users[20].name = Lucy 这样中间的1~19也会占用资源属性值为空。

    查看全部
  • @InitBinder 注解用于初始化一个对象

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

    在url中传递参数的出现同属性时,可以通过InitBinder方法进行初始化,再属性前加前缀来区别,若没加前缀则是共有的 

    @InitBinder("user") 

    public void intUser(WebDataBinder binder){ binder.setFieldDefaultPrefix("user.");

     }


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

    查看全部
  • @controller 注解使类生效 

    @RequestMapping(value="",meithod = RequestMethod.GET) 指定请求和方法

    @RequestParam(value="",required = true)value参数别名 required 是否必传默认为true 

    @RequestParam("xage")int age,xage是别名,别名是xage,客户端传上来的也要是xage,名称要一致

    查看全部
    1 采集 收起 来源:基本类型处理

    2018-12-13

举报

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

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