springMVC中controller的几种返回方式

Controller方法的返回值可以有以下几种:
1、返回ModelAndView

返回ModelAndView时最常见的一种返回结果。需要在方法结束的时候定义一个ModelAndView对象,并对Model和View分别进行设置。


2、返回String
1):字符串代表逻辑视图名
真实的访问路径=“前缀”+逻辑视图名+“后缀”
注意:如果返回的String代表逻辑视图名的话,那么Model的返回方式如下:
   public String testController(Model model){
model.addAttribute(attrName,attrValue);//相当于ModelAndView的addObject方法
return "逻辑视图名";
   }
2):代表redirect重定向
redirect的特点和servlet一样,使用redirect进行重定向那么地址栏中的URL会发生变化,同时不会携带上一次的request
案例:
public String testController(Model model){


return "redirect:path";//path代表重定向的地址


}
3):代表forward转发
通过forward进行转发,地址栏中的URL不会发生改变,同时会将上一次的request携带到写一次请求中去
案例:


public String testController(Model model){


return "forward:path";//path代表转发的地址


}


3、返回void
返回这种结果的时候可以在Controller方法的形参中定义HTTPServletRequest和HTTPServletResponse对象进行请求的接收和响应
1)使用request转发页面
  request.getRequestDispatcher("转发路径").forward(request,response);


2)使用response进行页面重定向


  response.sendRedirect("重定向路径");


3)也可以使用response指定响应结果
  response.setCharacterEncoding("UTF-8");
  response.setContentType("application/json;charset=utf-8");
  response.getWriter.write("json串"); 

猜你喜欢

转载自blog.csdn.net/zhanyu1/article/details/78117725
今日推荐