SpringMVC专题(五)-SpringMVC响应数据和结果视图
SpringMVC专题(五)-SpringMVC响应数据和结果视图
1.返回值分类
1.1.字符串
controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。
Croller代码:
//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp@RequestMapping("/testReturnString")public String testReturnString() { System.out.println("AccountController的testReturnString 方法执行了。。。。"); return "success"; }
运行结果:
1.2.void
我们知道 Servlet 原始 API 可以作为控制器中方法的参数:
@RequestMapping("/testReturnVoid")public void testReturnVoid(HttpServletRequest request,HttpServletResponse response) throws Exception {}
在 controller 方法形参上可以定义 request 和 response,使用 request 或 response 指定响应结果: 1、使用 request 转向页面,如下:
request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request, response);
2、也可以通过 response 页面重定向:
response.sendRedirect("testRetrunString");
3、也可以通过 response 指定响应结果,例如响应 json 数据:
response.setCharacterEncoding("utf-8");response.setContentType("application/json;charset=utf-8");response.getWriter().write("json 串");
1.3.ModelAndView
示例代码:
/*** 返回 ModeAndView* @return*/@RequestMapping("/testReturnModelAndView")public ModelAndView testReturnModelAndView() { ModelAndView mv = new ModelAndView(); mv.addObject("username", "张三"); mv.setViewName("success"); return mv; }
响应的 jsp 代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>