springmvc数据自动绑定

在实际开发中jsp页面会传递参数给后台,少数参数我们可以传递给后台,但是多个参数时我们可以封装成对象形式传递给后台。以下案例介绍下springmvc数据自动绑定,如何绑定实体对象

package com.somnus.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.somnus.domain.Account;
/**
 * @class:ModelAutoBindController
 * @descript:数据自动绑定,传递对象,返回页面
 * @date:2016年10月24日 下午12:39:59
 * @author san
 * @version:V1.0
 */
@Controller
@RequestMapping(value = "databind")
public class ModelAutoBindController {

	@RequestMapping(value="modelautobind", method = {RequestMethod.GET})
	public String modelAutoBind(/*Model model*/){
		//界面用到了【springmvc标签】才需要用model设置一个对象,给前端用来绑定
		/*model.addAttribute("account", new Account());*/
		return "modelautobind";
	}
	
	/**以下方法都可以用来拿到对象后,并把对象传递到结果界面 */
	/**
	 * @descript:方法一:@ModelAttribute("xxx") 用注解形式绑定对象
	 * @param account  对象
	 * @return
	 */
	@RequestMapping(value="modelautobind", method = {RequestMethod.POST})
	public String modelAutoBind(@ModelAttribute("account") Account account){
		System.out.println("第一种方式:" + account);
		return "modelautobindresult";
	}
	
	@RequestMapping(value="modelautobind2", method = {RequestMethod.POST,RequestMethod.GET})
	public String modelAutoBind(Model model, Account account){
		System.out.println("第二种方式:" + account);
		model.addAttribute("account", account);
		return "modelautobindresult";
	}
	
	@RequestMapping(value="modelautobind3", method = {RequestMethod.POST})
	public String modelAutoBind(HttpServletRequest request,Account account){
		System.out.println("第三种方式:" + account);
		request.setAttribute("account", account);
		return "modelautobindresult";
	}
	
	@RequestMapping(value="modelautobind4", method = {RequestMethod.POST})
	public String modelAutoBind(Map<String,Object> map, Account account){
		System.out.println("第四种方式:" + account);
		map.put("account", account);
		return "modelautobindresult";
	}
	
}

运行结果截图:



备注:

1.以上介绍了4个方法如何绑定实体对象

方法一:方法直接带实体对象参数,用注解@ModelAttribute("account"),返回页面return直接写jsp页面名称,方法返回类型为string。该方法利用springmvc机制封装modelattribute

方法二:方法带参数Model和实体对象名称,把实体对象存入model中返回对应的jsp页面。该方法利用的springmvc机制封装model

方法三:方法带参数request和实体对象名称,把实体对象存入request中返回对应的jsp页面。该方法利用原生request机制。

方法三:方法带参数map和实体对象名称,把实体对象存入map中返回对应的jsp页面。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值