b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mvc参数传值 springmvc中的数据绑定(前后台传递)

电脑杂谈  发布时间:2018-02-05 18:03:03  来源:网络整理

mvc参数传值_sprinfmvc传值_mvc参数传递

一:前后端数据的传递过程中肯定会涉及到数据的绑定,因为一个个参数单独接收很费事且代码效率会大大降低,下面就对各种类型的数据进行绑定。mvc参数传值

重点:表单大量数据(多对象)的传递绑定

1、基本类型数据绑定

在controller中写一个int参数绑定的方法,

@RequestMapping("/int")
@ResponseBody
public  String getInt(int id){
    return ""+id;
}

发送请求::8080/int?3

响应:此时会报500错误,接收不到名为id的参数

发送请求::8080/int?id=3

响应:3

结论:用基本类型进行参数绑定时,就必须传入key值,且value值必须是声明的基本类型,否则将报错

2、包装类型参数绑定(推荐使用)

@RequestMapping("/integer")
@ResponseBody
public  String getInt(Integer id){
    return ""+id;
}

请求::8080/integer?3????

???????????????????? :8080/integer????

???????????????????? :8080/integer?id=

上面的三个请求响应都是:null

请求::8080/integer?id=3

响应:3

结论:包装类型绑定参数时,key的值可以不传,数据也可以为空,但是要想绑定成功绑定,传的key值要和里面绑定的参数名一致

如果想要必须传入某个参数进行绑定,可以用@RequestParam,用了这个只有所需绑定的参数必须传入,否则报错

3、数组元素绑定

@RequestMapping("/array")
@ResponseBody
public String[] getUser(String[] name){
    return  name;
}
请求:http://localhost:8080/user?name=xiaoshu&name=xiaozhang
响应:
["xiaoshu","xiaozhang"]

4、多层级对象的绑定

在user类中加入一个admin的对象属性

@RequestMapping("/user")
@ResponseBody
public User getUser(User user){
    return user;
}

请求::8080/user?name=xiaoshu&id=1&address=hangzhou&admin.name=xiaoli

响应{"id":1,"name":"xiaoshu","address":"hangzhou","admin":{"name":"xiaoli","address":null}}
结论:将参数绑定到对象内层对象的属性中,如这里例子中的加上admin.name

5、同属性对象参数绑定

这里有两个对象user和admin,它们有两个相同的属性name和address

public String list(User user, Admin admin) {
return user.toString()+""+admin.toString();
}

发送请求:http://localhost:8080/list?name=xiaoshu&address=home
得到:User{id=null, name='xiaoshu', address='home'}Admin{name='xiaoshu', address='home'}

发现属性被同时绑定到了两个对象上
我们可以通过在controller中配置一个@InitBinder进行分开绑定


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-65226-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...