在springMVC中支持六种类型的返回方式,接下来我们介绍常用的四种:1.ModelAndView [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 @RequestMapping ( "/say.do" ) public ModelAndView say() { String msg= "测试返回方式ModelAndView" ; /** * 参数一:视图名称,即要跳转的页面 * 参数二:携带到视图上面的参数名 * 参数三:携带到视图上参数对应的值 */ return new ModelAndView( "success" , "msg" ,msg); } 注意:通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面2.Map [Java] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 @RequestMapping ( "/show.do" ) public Map<String, String> getMap() { Map<String, String> map = new HashMap<String, String>(); map.put( "keyOne" , "hello" ); map.put( "keyTwo" , "nihao" ); return map; } 注意:在jsp页面中可直通过${keyOne}获得到值, map.put()相当于request.setAttribute方法。3.String [Java] 纯文本查看 复制代码 ? 1 2 3 4 @RequestMapping ( "/eat.do" ) public String useString() { return "success" ; } 指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。 [Java] 纯文本查看 复制代码 ? 1 2 3 4 5 6 @RequestMapping (value= "/print.do" ) @ResponseBody public String print(){ String message = "Hello World, Spring MVC!" ; return message; } 4.void Controller中定义void方法,这种场景一般是通过HttpServletResponse对象来输出页面内容。注意:Controller的void方法中一定要声明HttpServletResponse类型的方法入参!void方法不定义HttpServletResponse类型的入参,HttpServletResponse对象通过RequestContextHolder上下文获取 ,注意:这种方式是不可行的,void方法不定义HttpServletResponse类型的入参Spring MVC会认为@RequestMapping注解中指定的路径就是要返回的视图name。如下示例: [Java] 纯文本查看 复制代码 ? 1 2 3 4 @RequestMapping ( "/hello.do" ) public void hello() throws IOException { System.out.println( "处理请求的方法..." ); } 正确的方式应该是: [Java] 纯文本查看 复制代码 ? 1 2 3 4 @RequestMapping ( "/hello.do" ) public void hello(HttpServletResponse response) throws IOException { System.out.println( "处理请求的方法..." ); }