Controller的三种返回类型中

ModelAndView类型 带数据带跳转页面

String 跳转页面不带数据

void 通常是ajax格式请求时使用

1返回ModelAndView

controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。

controller

  1. @RequestMapping("/test")
  2. public ModelAndView test(){
  3. ModelAndView mav=new ModelAndView("hello");//通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面
  4. mav.addObject("time", new Date());
  5. mav.getModel().put("name", "caoyc");
  6. return mav;
  7. }

JSP

  1. time:${requestScope.time}
  2. <br/>
  3. name:${name }

2   返回字符串

controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。

  1. @RequestMapping(value = "saveRegSigned")
  2. public String saveRegSigned(MeetingReg meetingReg, HttpServletRequest request, HttpServletResponse response,
  3. Model model) throws Exception {
  4. meetingReg.setMeetingId(Utils.getMeetingId(request));
  5. Map<String, Object> resultMap = regService.saveRegSigned(meetingReg);
  6. model.addAttribute("resultMap", resultMap);
  7. return "modules/meeting/signed/RegSignedReturnPage";
  8. }

JSP

  1. <div class="code_reg">
  2. <ul>
  3. <li>注册号:${resultMap.regCode}</li>
  4. <li>注册类型:${resultMap.regType}</li>
  5. </ul>
  6. </div>

3   返回void

void

如果返回值为空,则响应的视图页面对应为访问地址

  1. @RequestMapping("/index")
  2. public void index() {
  3. return;
  4. }

对应的逻辑视图名为"index"

4返回map

Map

  1. @RequestMapping("/demo2/show")
  2. public Map<String, String> getMap() {
  3. Map<String, String> map = new HashMap<String, String>();
  4. map.put("key1", "value-1");
  5. map.put("key2", "value-2");
  6. return map;
  7. }

在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。

对应的逻辑视图名为../demo2/show+suffix

返回其他object类型同map

1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。
2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。
3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。

参考http://www.cnblogs.com/xiepeixing/p/4243801.html

在controller方法形参上可以定义request和response,使用request或response指定响应结果:
    1、使用request转向页面,如下:
    request.getRequestDispatcher("页面路径").forward(request, response);

2、也可以通过response页面重定向:
    response.sendRedirect("url")

3、也可以通过response指定响应结果,例如响应json数据如下:
    response.setCharacterEncoding("utf-8");
    response.setContentType("application/json;charset=utf-8");
    response.getWriter().write("json串");

SpringMVC Controller的返回类型的更多相关文章

  1. asp.net mvc Controller控制器返回类型

    ASP.NET MVC包括了执行常见任务的ActionResult类型.这些类型罗列在表5-1中.每个类型都将在随后的小节中详细讨论. 表5-1  动作结果的类型及其说明 动作结果的类型 说    明 ...

  2. JAVA 框架 springmvc controller的返回值

    一.返回值:ModleView对象. 使用modelAndView.setViewName设置返回的页面.使用modelAndView.addObject设置返回的数据. @RequestMappin ...

  3. springmvc controller方法返回值

  4. springMVC中controller的几种返回类型

    ==网文1,还不错,感觉比较老旧springMVC中controller的几种返回类型 - CSDN博客http://blog.csdn.net/qq_16071145/article/details ...

  5. SpringMVC Controller 返回值几种类型

    SpringMVC Controller 返回值几种类型 2016年06月21日 19:31:14 为who而生 阅读数:4189 标签: Controller 返回值类型spring mvc 更多 ...

  6. Springmvc入门基础(五) ---controller层注解及返回类型解说

    0.@Controller注解 作用:通过@Controller注解,注明该类为controller类,即控制器类,需要被spring扫描,然后注入到IOC容器中,作为Spring的Bean来管理,这 ...

  7. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

    一.参数的传递 1.简单的参数传递 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ * value:传入的参数名,required:是否必填,defaultValue:默认 ...

  8. SpringMVC——-Controller返回格式化数据如JSON、XML的配置方式和机制

    1.本文内容 我们在Web项目开发过程中,一般来说访问一个处理器,然后会返回一个视图,或者跳转到另外的处理器.但是随着项目越来越复杂,需求越来越复杂,对于处理器返回数据的类型要求也越来越多.比如要求能 ...

  9. SpringMVC学习笔记三:Controller的返回值

    springMVC的返回值有ModelAndView,String,void,Object类型 项目目录树: 该项目是在前面项目的基础上修改的,这里的pom.xml文件需要加入使用到的包,应为@Res ...

随机推荐

  1. SQL标量函数-日期函数

    select day(createtime) from life_unite_product     --取时间字段的天值 select month(createtime) from life_uni ...

  2. [CQOI 2006]线段树之简单题

    Description 有一个n个元素的数组,每个元素初始均为0.有m条指令,要么让其中一段连续序列数字反转--0变1,1变0(操作1),要么询问某个元素的值(操作2).例如当n=20时,10条指令如 ...

  3. 最短路(Dijkstra) HDOJ 4318 Power transmission

    题目传送门 题意:起点s到终点t送电,中途会有损耗,问最小损耗是多少 分析:可以转换为单源最短路问题,用优先队列的Dijkstra版本,d[]表示从s出发到当前点的最小损耗,用res保存剩下的电量.当 ...

  4. 灰度世界算法(Gray World Algorithm) 分类: 图像处理 Matlab 2014-12-07 18:40 874人阅读 评论(0) 收藏

    人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能, 不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜 ...

  5. javascript:void(0)与#区别

    javascript:void(0)   鼠标点击时,不会跳转到其他页面,且停留在原地 #   鼠标点击时,不会跳转到其他页面,但会回到顶部

  6. [BZOJ1005][HNOI2008]明明的烦恼 数学+prufer序列+高精度

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int N; ...

  7. ES之各种运算符,for、while、do while 、switch case循环

    运算符优先级: 在所有的运算符中,括号的优先级最高,赋值符号的优先级最低. 小括号 > 计算运算符 > 比较运算符 > 逻辑运算符 > 赋值符号———————————————— ...

  8. springmvc 的配置 annotation-config/annotation-drive/ component-scan 区别

    1. <context:annotation-config /> 作用隐式的配置注解的加载类,默认的加载了AutowiredAnnotationBeanPostProcessor(auto ...

  9. [Windows Server 2008] IIS配置伪静态方法(Web.config模式的IIS rewrite)

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装伪静态(w ...

  10. CentOS 7 安装Oracle VirtualBox

    1. 下载VirtualBox的repo文件: 登陆 https://www.virtualbox.org/wiki/Linux_Downloads 在网页的最下端的repo链接上右键下载,或者wge ...