springMVC数据绑定

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();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值