在实际开发中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个方法如何绑定实体对象
方法一:方法直接带实体对象参数,[email protected](“account”),返回页面return直接写jsp页面名称,方法返回类型为string。该方法利用springmvc机制封装modelattribute
方法二:方法带参数Model和实体对象名称,把实体对象存入model中返回对应的jsp页面。该方法利用的springmvc机制封装model
方法三:方法带参数request和实体对象名称,把实体对象存入request中返回对应的jsp页面。该方法利用原生request机制。
方法三:方法带参数map和实体对象名称,把实体对象存入map中返回对应的jsp页面。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11198.html