SpringMVC的@RequestMapping注解和Controller方法返回值

@RequestMapping注解是每一个SpringMVC控制层的方法必须带有的注解,配置该注解可帮助SpringMVC映射器找到相应的执行方法。在@RequestMapping注解中有以下几个属性:

value:该属性指定了URL路径映射,可以配置到方法上,也可以配置到类上,当配置到类上时,URL路径为 类上的value+具体某个方法上的value。当一个类中所有方法都URL路径都有共同路径时可以把这段共同路径配置到类上。

method:该属性指定了客户端请求的方法,如@RequestMapping(method = RequestMethod.POST)(限定post请求方法访问)。如果通过GET访问则报错:HTTP Status 405 - Request method 'GET' not supported。

 

Controller方法返回值

1.void类型:大多用于ajax请求,因为ajax不用服务器跳转页面,只需要数据,我们只需通过在参数上绑定默认的response参数调用getwrite方法返回数据即可。也可用request和response实现页面跳转和转发。

2.String类型:controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。我们还可以在返回值中设定转发和重定向

重定向

@RequestMapping("updateItem")
public String updateItemById(Item item) {
	// 更新商品
	this.itemService.updateItemById(item);

	// 修改商品成功后,重定向到商品编辑页面
	// 重定向后浏览器地址栏变更为重定向的地址,
	// 重定向相当于执行了新的request和response,所以之前的请求参数都会丢失
	// 如果要指定请求参数,需要在重定向的url后面添加 ?itemId=1 这样的请求参数
	return "redirect:/itemEdit.action?itemId=" + item.getId();
}

转发

@RequestMapping("updateItem")
public String updateItemById(Item item) {
	// 更新商品
	this.itemService.updateItemById(item);

	// 修改商品成功后,重定向到商品编辑页面
	// 重定向后浏览器地址栏变更为重定向的地址,
	// 重定向相当于执行了新的request和response,所以之前的请求参数都会丢失
	// 如果要指定请求参数,需要在重定向的url后面添加 ?itemId=1 这样的请求参数
	// return "redirect:/itemEdit.action?itemId=" + item.getId();

	// 修改商品成功后,继续执行另一个方法
	// 使用转发的方式实现。转发后浏览器地址栏还是原来的请求地址,
	// 转发并没有执行新的request和response,所以之前的请求参数都存在
	return "forward:/itemEdit.action";

}

3.ModelAndView:类中封装了request域和显示页面的物理地址,直接返回ModelAndView类对象,Spring可以从中解析数据和显示界面物理地址。缺点是把数据和页面放到了一起,耦合性较大。

	@RequestMapping("/find.action")
	public ModelAndView finduser(String username, HttpServletRequest request, HttpServletResponse response) throws ClassNotFoundException, SQLException {
		//从service层获取数据
		User u = ud.finduser(username);
		ModelAndView mav = new ModelAndView();
		//把数据添加到request域
		mav.addObject("user",u);
		//设置转发页面
		mav.setViewName("/WEB-INF/displayuser.jsp");
		
		return mav;
	}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值