软件开发实训(720科技)--数据绑定和标签库

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

授课老师:张森鹏

重要笔记

1.数组

//数组绑定/arrayType?name=tom&name=lucy

@RequestMapping('/arrayType')

@ResponseBody

public String array(String[] name){

StringBuilder sb=new StringBuilder();

for (String item :name){

sb.append(item).append(' ');

}

return sb.toString();

}

2. 对象

//todo 对象绑定/objectType?name=tom&age=10

//todo 复合对象

///objectType?name=tom&age=10&contactinfo.phone=10086&contactinfo.address=china

//todo 属性的多个对象/objectType?user.name=tom&age=10

@RequestMapping('/objectType')

@ResponseBody

public String object(User user, Admin admin){

return user.toString()+' '+admin.toString();

}

@InitBinder('user')

public void initUser(WebDataBinder binder){

binder.setFieldDefaultPrefix('user.');

}

@InitBinder('admin')

public void initAdmin(WebDataBinder binder){

binder.setFieldDefaultPrefix('admin.');

}

3. 集合类型

List

//todo 集合数据绑定

//todo 数据收集对象UserListForm,绑定的是里面的users对象

//todo/list?users[0].name=tom&users[1].name=lucy

// 请求索引要连续,不然会浪费很多空间(空对象)

@RequestMapping(value = '/list')

@ResponseBody

public String list(UserListForm userList){

return userList.toString();

}

Set

//todoset的绑定与list的不同,set要初始化size大小,源码里面会判断index与size关系

// set 主要判断重复,在初始化set对象大小之后,重写hashcode和equals方法,空对象1个,size为1

// /set?users[0].name=tom&users[1].name=lucy

@RequestMapping(value = '/set')

@ResponseBody

public String set(UserSetForm userSet){

return userSet.toString();

}

Map

//todo/map?users[x].name=tom&users[y].name=lucy

@RequestMapping(value = '/map')

@ResponseBody

public String map(UserMapForm userMap){

return userMap.toString();

}

4. 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();

}

5. 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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值