package com.java.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.java.entity.Admin;
import com.java.entity.ListForm;
import com.java.entity.MapForm;
import com.java.entity.SetForm;
import com.java.entity.User;
@Controller
public class Text {
@RequestMapping("baseType1.action")
@ResponseBody
// 传入的是基本类型的话不能为空
public String baseType1(int age) {
return "age" + age;
}
@RequestMapping("baseType2.action")
@ResponseBody
// 传入的是包装类型的话可以为空
public String baseType2(Integer age) {
return "age" + age;
}
@RequestMapping("array.action")
@ResponseBody
// http://localhost:8080/springmvc/array.action?name=tom&name=jim&name=jane
public String array(String[] name) {
StringBuilder builder = new StringBuilder();
for (String string : name) {
builder.append(string).append(" ");
}
return builder.toString();
}
//user和admin的字段一样,都是name和age
@RequestMapping(value = "object.action", produces = "text/html;charset=utf-8")
@ResponseBody
// http://localhost:8080/springmvc/object.action?name=aaa&age=10
// http://localhost:8080/springmvc/object.action?name=aaa&age=10&info.phone=110&info.address=北京
public String object(User user) {
return user.toString();
}
//两个对象的字段相同时,通过下面的两个initXXX方法给两个对象设置别名进行传递参数
@RequestMapping(value = "object2.action")
@ResponseBody
// http://localhost:8080/springmvc/object2.action?user.name=aaa&admin.age=10
public String object2(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.");
}
// List的数据绑定,List不需要初始化
@RequestMapping("list.action")
@ResponseBody
// http://localhost:8080/springmvc/list.action?list[0].name=aaa&list[1].name=bbb
public String list(ListForm list) {
return list.toString();
}
// Set的数据绑定,Set需要初始化,集合下标越界会发生异常
@RequestMapping("set.action")
@ResponseBody
// http://localhost:8080/springmvc/set.action?set[0].name=aaa&set[1].name=bbb
public String set(SetForm set) {
return set.toString();
}
// Map的数据绑定,不需要初始化
@RequestMapping("map.action")
@ResponseBody
// http://localhost:8080/springmvc/map.action?map['x'].name=aaa&map['x'].age=10&map['y'].name=bbb&map['y'].age=20
public String map(MapForm map) {
return map.toString();
}
}
springMVC数据绑定
最新推荐文章于 2023-06-25 15:23:47 发布