访问数据模块

本文介绍了SpringMVC中数据模块的访问结构,重点讨论了ModelAndView的使用,包括两种使用方式,以及如何通过Map和Model进行数据访问。此外,还提到了@SessionAttributes注解,用于在多个请求间共享模型属性数据。
数据模块访问结构


访问数据模型:ModelAndView

@RequestMapping(method = RequestMethod.POST)
public ModelAndView createUser(User user) {
	userService.createUser(user);
	//创建ModelAndView对象并指定跳转界面   
	//ModelAndView mav = new ModelAndView("user/createSuccess")
	//创建ModelAndView对象
	ModelAndView mav = new ModelAndView();
	//指定跳转界面
	mav.setViewName("user/createSuccess");
	//设置属性
	mav.addObject("user", user);
	return mav;
}


访问数据模型:@ModelAttribute

1.使用方式一

@RequestMapping(value = "/handle61")
public String  handle61(@ModelAttribute("user") User user){
	user.setUserId("1000");
	return "/user/createSuccess";
}
springMVC将HTTP请求数据绑定到user入参中,然后再将user对象添加到数据模型中。

2.使用方式二


访问数据模型:Map及Model

org.springframework.ui.Model和java.util.Map;

@RequestMapping(value = "/handle63")
public String  handle63(ModelMap modelMap){
     modelMap.addAttribute("testAttr","value1");
     User user = (User)modelMap.get("user");
     user.setUserName("tom");		
     return "/user/showUser";
}
SpringMVC一旦发现处理方法有Map或Model类型的入参,就会将请求内在的隐含模型对象的引用传给这些入参。

访问数据模型:@SessionAttributes

如果希望在多个请求之间公用某个模型属性数据,则可以在控制器类标注一个@SessionAttributes,SpringMVC将模型中对应的属性暂存到HttpSession中:



示例:

Map

@RequestMapping(value="/case",method=RequestMethod.GET)
public String case1(Map map) throws Exception{
	map.put("sex", "girl");
	return "/lesson03/res.jsp";
}

Model 

@RequestMapping(value="/case",method=RequestMethod.GET)
public String case1(Model model) throws Exception{
	model.addAttribute("name", "zs");
	return "/lesson03/res.jsp";
}

ModelAnaView

@RequestMapping(value="/case2",method=RequestMethod.GET)
public ModelAndView case2() throws Exception{
	ModelAndView mav = new ModelAndView("/lesson03/res.jsp");
	mav.addObject("sex","boy");
	return mav;
}




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值