SpringMvc中,Controller方法的多种实现方式(指定返回到哪个页面,指定返回到页面的数据)

1)ModelAndView

@RequestMapping("/list")
	public ModelAndView itemsList() throws Exception{
		List<Items> list = itmesService.list();
		//创建ModelAndView视图
		ModelAndView modelAndView = new ModelAndView();
		//将list数据添加到试图里
		modelAndView.addObject("itemList", list);
		modelAndView.setViewName("itemList");//设置视图的名称,即返回到哪个页面
		//由于有视图解析器的作用,省去了前缀和后缀,其实访问的页面为("/WEB-INF/jsp/itemList.jsp")
		return modelAndView;
	}

2)String(最常用,最方便,建议

@RequestMapping("/itemEdit/{id}")
	public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, 
			 Model model) throws Exception{
		//String idStr = reuqest.getParameter("id");
		Items items = itmesService.findItemsById(id);
		//将items数据加到视图中
		model.addAttribute("item", items);
		
		//这里返回editItem,在@Controller的注解下,回自动添加前缀和后缀,实则是返回到页面("/WEB-INF/jsp/editItem.jsp")
		return "editItem";
	}

3)返回void

public void update(Items items,HttpServletRequest request,HttpServletResponse response)throws Exception{
		//返回数据,将items的内容放入items里,jsp页面调用items就行
		request.setAttribute("items", items);
		//返回指定的页面
		//如果是void类型的话,就不会去调用SpringMvc的架构,因此无法自动加载视图解析器,所以跳转的
		//网页名称应该为其全路径名称
		request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
}    

4)关于方法中所需要的参数定义

举3)中的例子,我在update方法中定义了:

Items items,HttpServletRequest request,以及HttpServletResponse response这三个类型.

但是大家可以发现,其实我在方法中是没有用到response的,因此,可以把其删掉,对于程序来说,并不会产生影响。

因此,大家在定义方法的时候,可以根据自己的实际需要来定义所需要的类,或者大家怕以后代码需要改麻烦的话,全部定义上也是可以的。

更新

==============================================================================================

5)若如果想要接口不是跳转页面,而是返回数据,则需要添加@ResponseBody的注解

例:

@RequestMapping("atimynyc/getUser")
@ResponseBody
public User getUser(String id){
    User user = new User();
    user.setUserName = "Atimynyc";
    user.setUserAge = 18;
    user.setUserPhone = "123456789";
    return User;
}

通过加上ResponseBody,springmvc就知道该接口是返回数据,例,当我们用ajax调用上面的接口url时atimynyc/getUser,就可以获得user这个对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值