当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。
因此,经常需要在控制器中构造ModelAndView对象。ModelAndView类提供了几个重载的构造器和一些方便的方法,
让你可以根据自己的喜好来构造ModelAndView对象。这些构造器和方法以类似的方式支持视图名称和视图对象。
当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndView对象
在上篇的基础上,只修改Login类
- package com.itmyhome;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- @Controller
- public class Login {
- @RequestMapping(value="login")
- public ModelAndView login(){
- ModelAndView mav = new ModelAndView();
- mav.setViewName("welcome"); //返回的文件名
- mav.addObject("message","hello kitty");
- //List
- List<String> list = new ArrayList<String>();
- list.add("java");
- list.add("c++");
- list.add("oracle");
- mav.addObject("bookList", list);
- //Map
- Map<String,String> map = new HashMap<String,String>();
- map.put("zhangsan", "北京");
- map.put("lisi", "上海");
- map.put("wangwu", "深圳");
- mav.addObject("map",map);
- return mav;
- }
- }
亦或如下方法来构建你的ModelAndView对象
- @RequestMapping(value="logout")
- public ModelAndView logout(){
- String message = "欢迎下次光临!";
- return new ModelAndView("logout","message",message);
- }
然后修改welcome.jsp输出数据
遍历集合可使用jstl表达式,需在jsp中引入头文件
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
lib下导入jstl.jar和standard.jar。
首先这两个jar在哪里可以找到,当然可以在网上下载。
另外在tomcat下面就有,在\webapps\examples\WEB-INF\lib下
前提是你还没有把webapps下面的一些无用项目删掉。
welcome.jsp
- <body>
- <!-- 输出普通字符 -->
- ${message } <br/>
- <!-- 输出List -->
- <p>书籍列表</p>
- <c:forEach items="${bookList}" var="node">
- <c:out value="${node}"></c:out>
- </c:forEach>
- <br/>
- <br/>
- <!-- 输出Map -->
- <c:forEach items="${map}" var="node">
- 姓名:<c:out value="${node.key}"></c:out>
- 住址:<c:out value="${node.value}"></c:out>
- <br/>
- </c:forEach>
- </body>
结果如图:
相关推荐
SpringMVC将服务器处理后的结果返回并带给浏览器
– ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据 – Map及Model: 入参为org.springframework.ui.Model、org.springframework.ui.ModelMap 或 Java.uti.Map 时,处理...
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 ...
简要概述springmvc Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用 ...业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 ...
23道SpringMVC常见面试题 ...2) DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller 3)Controller 调 用 业 务 逻 辑 后 , 返 回 ModelAndView 4)DispatcherServlet 查询 ModelAndVi
springMVC 拦截器源代码 内有详细文档介绍操作 @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { //可以通过...
springmvc经典教程1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。2.简要概述springmvcSpring C 层框架...
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet调用HandlerAdapter处理器适配器。 5、 ...
jsp 显示springmvc modelmap传递的对象 最近在做一个小网站,功能非常基础,决定用springmvc搭建。 遇到一个问题,在controller向前端传值时,比如使用ModelMap传了一个字符串,modelmap.addattribute(“msg”, ...
并返回一个ModelAndView对象(包含模型数据、逻辑视图名); 5、 ModelAndView的逻辑视图名交给ViewResolver解析器, ViewResolver解析器把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术...
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet 6、Handler返回的ModelAndVi
由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调用业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显示到...
估计你使用的是 GB2312 或者 GBK, 立即转到 UTF-8 上来吧. 分解配置文件. context-param 标签指明我们的配置文件还有 /WEB-INF/database.xml 和 /WEB-INF/applicationContext.xml. ContextLoaderListener...
一、@RequestMapping 定义...二、处理器方法的参数 o1. 逐个参数 o2. 校正请求参数名@RequestParam o3. 请求参数中文乱码问题 o4. 对象参数接收 三、处理器方法的返回值 o1. 返回 ModelAndView o2. 返回 String
④ 处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和渲染视图时需要用到的模型数据对象; ⑤ 由于ModelAndView中包含的是视图逻辑名,DispatcherServlet必须...
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器架构,IOC容器包含并管理应用对象的配置和生命周期,你可以配置你的每个bean如何被创建,也可以配置每个bean是只有一个实例,还是每次需要时都生成一个...
(3)、 处理器映射器(HandlerMapping)找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet(前端控制器)。 (4)、 DispatcherServlet...
是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使用springMVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎SpringMVC:1.客户端发送请求到...
目录 第一部分spring的核心 ...b.2.2断言modelandview的内容 b.3使用spring进行综合测试 b.3.1测试装配后的对象 b.3.2综合测试事务处理对象 b.3.3测试数据库 b.3.4使用gienahtesting在junit4中进行测试 b.4小结