关于Java Web框架之一的SpringMVC中Controller的返回值类型的理解

来源:互联网 发布:ammnra折叠刀淘宝 编辑:程序博客网 时间:2024/05/22 14:17
Controller方法的返回值可以有以下几种:总的来说一般应该是有三种返回值类型的、但是这三种之下分为好几种我们实际中经常能使用到的、下面进行一一阐述:
1、返回ModelAndView
2、返回“String”
3、返回void
首先:(1)
返回ModelAndView时最常见的一种返回结果。需要在方法结束的时候定义一个ModelAndView对象,并对Model和View分别进行设置。其次:(2)

2-1):字符串代表逻辑视图名

真实的访问路径=“前缀”+逻辑视图名+“后缀”

注意:如果返回的String代表逻辑视图名的话,那么Model的返回方式如下:

   public String testController(Model model){model.addAttribute(attrName,attrValue);//相当于ModelAndView的addObject方法return "逻辑视图名";   }

2-2):代表redirect重定向

redirect的特点和servlet一样,使用redirect进行重定向那么地址栏中的URL会发生变化,同时不会携带上一次的request

案例:

public String testController(Model model){return "redirect:path";//path代表重定向的地址}

2-3):代表forward转发

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

案例:

public String testController(Model model){return "forward:path";//path代表转发的地址}

最后:(3)

返回这种结果的时候可以在Controller方法的形参中定义HTTPServletRequest和HTTPServletResponse对象进行请求的接收和响应

3-1)使用request转发页面

  request.getRequestDispatcher("转发路径").forward(request,response);
3-2)使用response进行页面重定向
  response.sendRedirect("重定向路径");
3-3)也可以使用response指定响应结果
  response.setCharacterEncoding("UTF-8");  response.setContentType("application/json;charset=utf-8");  response.getWriter.write("json串"); 


总结:以上三种返回值没有什么重要和不重要的分别,一般来说都会使用到,只不过有的时候使用的方式会有一些细微的差别

参考链接:链接



原创粉丝点击