SpringMVC数据绑定
来源:互联网 发布:中世纪2王国战役优化9 编辑:程序博客网 时间:2024/06/01 08:35
SpringMVC数据绑定
基本类型和包装类型的区别:
基本类型是必传的,包装类型可以不传,并且只能是int类型
基本类型加上@RequestParam(“age”),可以绑定对应名字的参数,并且可以为空
数组绑定:String[] name
可以绑定请求参数中多个相同的key的值
对象的绑定
pojo: 和指定对象里面的字段的名字相同就可以
vo: 传数据时要用“属性对象.字段“来设置多层级对象的数据
多个对象字段冲突的情况下:
会给所有对象相应字段赋值
可以用前缀来区分
//在跳转到Controller之前初始化@InitBinder("user")public void initUser(WebDataBinder binder){binder.setFieldDefaultPrefix("user.")}
List的绑定
传List需要新建一个数据收集对象,如ListForm, get set一下List属性字段
索引下角标传参:users[0].name=Tom&user[1].name=Lucy
list大小为下标的最大值,也就是请求的索引一定是连续的,否则会造成空索引和资源浪费
Set的绑定
同样也需要一个收集对象,和List的差不多,传参也差不多
区别:需要对Set进行初始化,传参的下标必须在set的大小范围内
一般是用来排查重复的,可以重写hashCode和equals方法来排重(但也会影响初始化的大小,如初始化时添加两个相同的对象,这时set的size是1不是2)
Map数据绑定
如果key相同认为是同一个,也需要一个数据收集对象,如UserMapForm,里面有个map< String, User>属性users (需要set,get方法)
传参:users[“x”].name=Tom&users[“x”].age=10
Json绑定
传Json数据,加注解@RequestBody, 传参时会转换为类,需要配置json转化工具,如jackson
xml数据绑定
同样加@RequestBody注解,同时配置spring-oxm的xml解析工具
相关的类上也要加上注解:
类名:@XmlRootElement(name=”admin”)
getName方法上加上@XmlElement(name=”name”)
自动转化之PropertyEditor
继承PropertyEditorSupport, 重写setAsT xt
@Overridepublic void setAsText(String text) throws IllegalrgumentException{ User u = new User(); String[] textArray = text.split(","); u.setName(textArray[0]); u.setAge(Integer.parseInt(textArray[1])); this.setValue(u)}
日期转化:
@RequestMapping(value="date1.do")@ResponseBodypublic String date1(Date date1){ return date1.toStrng();}
转换器注册:
//不是全局的@InitBinder("date1")public void initDate1(WebDateBinder binder){ binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true)); //传true表示可以为空}
自动转化之Formatter
CurrencyFormatter formatter = new CurrencyFormatter();formatter.setFractionDigits(2);formatter.setRoundingMode(RoundingMode.CEILING);//formater能够按照规则转化数据 Assert.assertEquals(new BigDecimal("123.12"), formatter.parse("$123.125"),Locale.US)
全局的写法:
实现Formatter类,写对应的转换方法,然后在Spring中配置bean
mvc:annotation-driven conversion-service=下面的id //不加不会生效bean id class=FormattingConversionServiceFactory property name=formatters set bean class=MyDateFormatter
自动转化之Converter
需要在Spring中注入,有多个内置实现类,内置的不可扩展
//实现方法public class MyDateConverter implements Converter<String,Date> public Date convert(String source)
同时也要配置Spring,将上面formatter的name=formatters改为name=converters
- 浅谈 SpringMVC 数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC 表单数据绑定
- SpringMVC数据绑定使用指南
- 浅谈 SpringMVC 数据绑定
- SpringMVC数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC数据绑定
- springmvc数据绑定
- springmvc 注解/数据绑定
- 浅谈 SpringMVC 数据绑定
- 浅谈 SpringMVC 数据绑定
- SpringMVC 数据绑定 Map
- SpringMvc数据绑定
- 浅谈SpringMVC数据绑定
- SpringMVC 数据绑定
- springmvc数据绑定
- springMVC数据对象绑定
- 17.11.19日报
- 球员题(查询+添加+排序)
- HTTP学习与Web服务器编程
- mysql id自动增加和时间戳
- 5. 最高的分数
- SpringMVC数据绑定
- 机器学习基础—Kaggle泰坦尼克预测(完整分析)
- 自定义markdown编辑器
- DOS之找不到桌面
- 信息题(查询+批量删除+修改+添加)
- netease-cloud-music for ubuntu installation
- 6. 整数序列的元素最大跨度值
- CentOS 7下发布.net core 2.0 过程
- 反汇编——多维数组