springmvc_3_数据转换 & 数据格式化 & 数据校验
2018-03-21 14:07
585 查看
/** * 可行 * http://127.0.0.1:8080/laweyecloud/springmvc/pojo1?id=1&name=hh&password=222 * @param poJo1 * @param uiModel * @return */ @RequestMapping("pojo1") public String POJOTest1( PoJo1 poJo1, Model uiModel ){ uiModel.addAttribute("key1", poJo1); return "springmvc/POJO"; } /** * 不可行,都是null,不能自动绑定 * http://127.0.0.1:8080/laweyecloud/springmvc/pojo3?poJo1.id=1&poJo1.name=hh&poJo1.password=222&poJo2.id=22&poJo2.name=222&poJo2.fathe=hgj * @param poJo1 * @param poJo2 * @param uiModel * @return */ @RequestMapping("pojo3") public String POJOTest3( PoJo1 poJo1, PoJo2 poJo2, Model uiModel ){ uiModel.addAttribute("key1", poJo1); uiModel.addAttribute("key2", poJo2); return "springmvc/POJO"; } /** * 数据绑定流程(就是springmvc自动的将页面传入的参数,转换为方法入参对应的参数类型) * • 1. Spring MVC 主框架将 ServletRequest 对象及目标方 法的入参实例传递给 WebDataBinderFactory 实例,以创 建 DataBinder 实例对象 • 2. DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换、数据格式 化工作。将 Servlet 中的请求信息填充到入参对象中 • 3. 调用 Validator 组件对已经绑定了请求消息的入参对象 进行数据合法性校验,并最终生成数据绑定结果 BindingData 对象 • 4. Spring MVC 抽取 BindingResult 中的入参对象和校验 错误对象,将它们赋给处理方法的响应入参 自定义类型转换器 • ConversionService 是 Spring 类型转换体系的核心接口。 • 可以利用 ConversionServiceFactoryBean 在 Spring 的 IOC 容器中定义一个 ConversionService. Spring 将自动识别出 IOC 容器中的 ConversionService,并在 Bean 属性配置及 Spring MVC 处理方法入参绑定等场合使用它进行数据的转换 • 可通过 ConversionServiceFactoryBean 的 converters 属性 注册自定义的类型转换器 */ @RequestMapping("pojo4") public String POJOTest4( PoJo1 poJo1, PoJo2 poJo2, Model uiModel ){ uiModel.addAttribute("key1", poJo1); uiModel.addAttribute("key2", poJo2); return "springmvc/POJO"; } /** * 两个参数对象被赋予相同的参数 解决办法@InitBinder @InitBinder • 由 @InitBinder 标识的方法,可以对 WebDataBinder 对 象进行初始化。WebDataBinder 是 DataBinder 的子类,用 于完成由表单字段到 JavaBean 属性的绑定 • @InitBinder方法不能有返回值,它必须声明为void。 • @InitBinder方法的参数通常是是 WebDataBinder * @InitBinder */ @InitBinder("poJo1") public void initPojo1(WebDataBinder binder){ binder.setIgnoreInvalidFields(true); binder.setFieldDefaultPrefix("poJo1."); } @InitBinder("poJo2") public void initPojo2(WebDataBinder binder){ binder.setIgnoreInvalidFields(true); binder.setFieldDefaultPrefix("poJo2."); } @RequestMapping("DateTimeFormat") public String DateTimeFormatTest( DateTest dateTest ){ System.out.println(dateTest); return "springmvc/POJO"; } /** * 设置日期类型自动转换 * @param binder */ @InitBinder public void initDateBinder(WebDataBinder binder){ SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); CustomDateEditor editor = new CustomDateEditor(format, true); binder.registerCustomEditor(Date.class, editor); } @RequestMapping("valid") public String valid( @Valid ValidTest validTest, BindingResult bindingResult ){ if (bindingResult.hasErrors()) { return "springmvc/valid"; } System.out.println(validTest); return "springmvc/valid"; } @RequestMapping("toRequestBodyPage") public String toRequestBodyPage(){ return "springmvc/RequestBody"; }
package com.itrus.laweyecloud.springmvc; public class PoJo1 { public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private Long id; private String name; private String password; }
package com.itrus.laweyecloud.springmvc; public class PoJo2 { private Long id; private String name; private String father; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getFather() { return father; } public void setFather(String father) { this.father = father; } }
相关文章推荐
- 【SpringMVC】SpringMVC系列12之数据类型转换、格式化、校验
- springmvc学习笔记(25)——数据格式化与数据校验
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
- SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息
- springmvc数据的格式化及数据校验
- SpringMVC 学习笔记3 - 数据校验 & 编码过滤器
- SpringMVC-8 数据类型转换、数据格式化与数据校验
- Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验
- SpringMVC 数据的格式化、JSR 303数据校验和国际化
- springmvc笔记-6-数据转换,格式化,校验
- springMVC学习笔记(三) 数据校验
- SpringMVC中的数据校验
- 第七章 注解式控制器的数据验证、类型转换及格式化--SpringMVC数据类型转换
- springmvc 数据转换与格式化
- SpringMVC和Mybatis(三)pojo参数绑定、服务端校验、分组校验、数据回显
- 5、springMVC的校验和数据回显
- 5、springMVC的校验和数据回显
- SpringMVC 返回Java8 时间JSON数据的格式化问题处理
- SpringMVC中的数据校验
- springmvc(四) springmvc的数据校验的实现