720课堂笔记2

内容关键词: 表单 绑定、 数据、渲染,集合,配置,转换

授课老师:张森鹏

Json数据
在maven配置文件中加入jackson-databind的jar包依赖支持对json的解析
//todo json绑定 Content-Type:application/json
// {
// 'name':'tom',
// 'age':10,
// 'contactInfo':{
// 'address':'shenzhen',
// 'phone':10086
// }
//}
@RequestMapping(value '/json')
@ResponseBody
public String json(@RequestBody User user){
return user.toString();

}


XML
//todo xml绑定 需要加入spring-oxm的jar包以及对象添加xml的注解
//Content-Type:application/xml
//
//
// tom
// 10
//
@RequestMapping(value '/xml')
@ResponseBody
public String xml(@RequestBody Admin admin){
return admin.toString();
}
对Admin类的修改:
package kay.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name='admin') //xml根节点
public class Admin{
private String name;
private String age;
@Override
public String toString() {
return 'Admin{' +
'name=' name +\+
', age=' age +\+
};
}
@XmlElement(name='name') //xml属性节点
public String getName() {
return name;
}
public void setName(String name) {
this.name name;
}
@XmlElement(name='age') //xml属性节点
public String getAge() {
return age;
}
public void setAge(String age) {
this.age age;
}

}


数据格式转换
 Spring支持的数据格式转换的三种接口
以Date类型为例:
第一种方式,使用PropertyEditor的实现类,使用CustomDateEditor这个类进行类型绑定
此方式配置的格式转换只在当前controller类中对一个属性生效
//todo 日期转换 /dateType?date1=2017-07-05
@RequestMapping(value = '/dateType')
@ResponseBody
public String date1(@RequestParam('date1') Date date1){
return date1.toString();
}
//todo 局部有效,只在这个controller里面
@InitBinder('date1')
public void initDate1(WebDataBinder binder){
binder.registerCustomEditor(Date.class,new CustomDateEditor(newSimpleDateFormat(
'yyyy-MM-dd'),true));
}
第二种方式,实现Formatter接口,并在配置文件中配置bean对象
public class MyDateFormatter implements Formatter{
public Date parse(String s, Locale locale) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat('yyyy-MM-dd');
return sdf.parse(s);
}
public String print(Date date, Locale locale) {
return null;
}
}
配置:
第三种,实现Converter接口,并在配置文件中配置bean
public class MyDateConverter implements Converter{
public Date convert(String s) {
SimpleDateFormat simpleDateFormat=newSimpleDateFormat('yyyy-MM-dd');
try {
return simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
配置和上一种方法类似
从Formatter接口和Converter接口的实现来看,Formatter只能从String类型转换,而Converter接口可以定义从任何类型转换成想要的类型。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值