JavaEE_Mybatis_SpringMVC_SpringMVC_SpringMVC的Model中数据的作用域(位置)


在学习SpringMVC中遇到Model 和 HttpServletRequst 数据放置的位置,对数据放置的位置比较困惑,写了以下的测试


本例通过HttpServletRequst 和 Model 中设置数据的两种,并redirect 到一个controller 比较两种方法是否都能接收到数据


测试代码


import cn.itcast.ssm.po.ItemsEx;
import cn.itcast.ssm.po.ItemsExVo;
import cn.itcast.ssm.service.ItemsService;

//限制Http请求方法
//@RequestMapping(value = "/items", method = { RequestMethod.POST,RequestMethod.GET })
@Controller
@RequestMapping(value = "/items", method = { RequestMethod.POST,
		RequestMethod.GET })
public class ItemsController {

	@Autowired
	ItemsService itemsService;
	// 形参为Model, 返回值为String的ModeAndView的Controller
	@RequestMapping("/queryItems")
	public String queryItems(Model model, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		System.out.println(request.getParameter("its"));
		System.out.println(request.getParameter("itss"));

		ItemsEx itemsEx = new ItemsEx();
		// itemsEx.setName("本");
		// itemsEx.setPrice(20.0f);
		ItemsExVo itemsExVo = new ItemsExVo();
		itemsExVo.setItemsEx(itemsEx);
		List<ItemsEx> itemsList = itemsService.findItemsExList(itemsExVo);

		model.addAttribute("itemsList", itemsList);

		return "items/itemsList";
	}
	// 返回String,利用redirect:queryItems.action,进行redirect进行跳转的形式
	@RequestMapping("/editItemsSubmit")
	public String editItemSubmit(Model model, HttpServletRequest request)
			throws Exception {
		// 调用service更新商品信息。页面需要将商品信息传到此方法中
		// ...

		// 相当于HttpServletRequest中的redirect方法,地址栏的信息不会发生变化
		// 如此例中变为http://localhost:8080/Web_SSM_test/items/queryItems.action
		model.addAttribute("its", 1);
		request.setAttribute("itss", 2);
		return "redirect:queryItems.action";
	}

}

测试结果

 


通过以上结果:

可以看出Model中的数据应该不是放置在request 域中。而HttpServletRequest 的数据应该是放置在request 域中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值