Spring MVC-从零开始-view-向页面传递data(ModelAndView)
1、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
> <context:component-scan base-package="com.jt"/> <!-- 视图分解解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这是前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 这是后缀 -->
<property name="suffix" value=".jsp"></property>
<!-- 在spring的控制器中,返回的是一个字符串,那么请求的路径则是,前缀+返回字符串+后缀 -->
</bean> </beans>
2、控制器代码
package com.jt; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value="view")
public class TestModelAndView {
@RequestMapping(value="/personInfo")
public ModelAndView viewInfo(){
ModelAndView mv=new ModelAndView();
mv.addObject("name","jt");
mv.addObject("gender","man");
mv.setViewName("viewPersonInfo");
System.out.println("viewPersonInfo");
return mv;
}
}
3、viewPersonInfo.jsp代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
viewPersonInfo<br>
${name}<br>
${gender }
</body>
</html>
注:无需显示引入任何标签库
4、目录结构

5、运行效果

6、ModeAndView其他用法
- 构造函数
| 构造函数摘要 | |
|---|---|
ModelAndView() bean样式用法的默认构造函数:填充bean属性,而不是传递构造函数参数。 |
|
ModelAndView(Object view) 当没有模型数据暴露时,方便的构造函数。 |
|
ModelAndView(Object view, Map model) 给出一个View对象和一个模型,创建一个新的ModelAndView。 |
|
ModelAndView(Object view, String modelName, Object modelObject) 方便的构造函数来取一个模型对象。 |
|
ModelAndView(String viewName) 当没有模型数据暴露时,方便的构造函数。 |
|
ModelAndView(String viewName, Map model) 给出一个视图名称和一个模型来创建一个新的ModelAndView。 |
|
ModelAndView(String viewName, String modelName, Object modelObject) 方便的构造函数来取一个模型对象。 |
|
- setviewname setview 的区别
setViewName()主要用于设置jsp页面名称
setView()主要用设置自定义的view对象
- 可以向ModeAndView中添加List对象、Map对象数据(界面显示是需要添加<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>,注意:c标签所依赖的jar,jstl.jar,commons-el.jar,standard.jar)
package com.jt; 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
@RequestMapping(value="view")
public class TestModelAndView {
@RequestMapping(value="/personInfo")
public ModelAndView viewInfo(){
ModelAndView mv=new ModelAndView();
mv.addObject("name","jt");
mv.addObject("gender","man"); // List
List<String> list = new ArrayList<String>();
list.add("java");
list.add("es");
list.add("c#");
mv.addObject("bookList", list); // Map
Map<String, String> map = new HashMap<String, String>();
map.put("zhangsan", "bj");
map.put("lisi", "sh");
map.put("wangwu", "sz");
mv.addObject("map", map); mv.setViewName("viewPersonInfo");
System.out.println("viewPersonInfo");
return mv;
}
}
Spring MVC-从零开始-view-向页面传递data(ModelAndView)的更多相关文章
- Spring MVC-从零开始-view-向页面传递data(ModelAndView与ModelMap的区别)
1.ModelMap的用法 package com.jt; import org.springframework.stereotype.Controller; import org.springfra ...
- spring MVC中定义异常页面
如果我们在使用Spring MVC的过程中,想自定义异常页面的话,我们可以使用DispatcherServlet来指定异常页面,具体的做法很简单: 下面看我曾经的一个项目的spring配置文件: 1 ...
- spring mvc从前台往后台传递参数的三种方式
jsp页面: 第一种:使用控制器方法形参的方式(常用) 第二种:使用模型传参的方式(如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂.我们可以使用模型传参的方式,把多 个请求的参数 ...
- Spring MVC前台使用html页面作为视图,配置静态资源后Controller控制器不起作用的解决办法
1.Spring MVC搭建项目的时候,想使用html页面作为前端的视图,你会发现html页面不能访问,原因是由于Spring拦截器将其拦截寻找控制器的缘故,解决办法就是配置静态资源: <mvc ...
- Spring MVC 解读——View,ViewResolver(转)
上一篇文章(1)(2)分析了Spring是如何调用和执行控制器方法,以及处理返回结果的,现在我们就分析下Spring如何解析返回的结果生成响应的视图. 一.概念理解 View ---View接口表示一 ...
- spring mvc DispatcherServlet详解之三---request通过ModelAndView中获取View实例的过程
整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet第二步:通过request从Controller获取ModelAndView.现在来讲解第三步:reques ...
- 小程序跨页面传递data数据的三种方法
Q:小程序怎么把页面data里的数据传到另外的页面? 或者小程序怎么吧表单里的数据传到另外的页面?A:1.可以使用url传递数据. 例如在A页面中传递数据,需要注意的是,wx.switchTab中的u ...
- MVC在View中页面跳转
在做人事系统的时候须要用到页面跳转,那么页面跳转究竟用什么方法好呢?依照曾经的思路,我就会这么写. <span style="font-size:18px;">wind ...
- spring mvc 跳转后页面cs样式表丢失
原因:../不能正确返回 解决办法:jsp文件加<% String path = request.getContextPath(); String basePath = request.getS ...
随机推荐
- Unity Editor已停止工作
在更换系统之后,可能会出现打开刚安装好的Unity,显示Unity Editor已停止工作,这时候我们考虑是系统win7的问题.可以在原系统上升级,也可以重新安装,升级.文中所涉及到的软件,可在右侧加 ...
- Linux基础命令和文件权限
Linux命令与文件权限 Linux基础命令 reboot 重启 cd 切换目录 cd .. 回到上一级目录 cd ~ 回到主目录 cd / ...
- Win10下安装python3.x+pycharm+autopep8
一.安装Python3.X 1.Pythong官方网站:http://python.org/getit/ 下载windows的安装包.有以下几个选项: 这里选择windows x86-64 exc ...
- 提升RabbitMQ消费速度的一些实践
RabbitMQ是一个开源的消息中间件,自带管理界面友好.开发语言支持广泛.没有对其它中间件的依赖,而且社区非常活跃,特别适合中小型企业拿来就用.这篇文章主要探讨提升RabbitMQ消费速度的一些方法 ...
- Monad 在实际开发中的应用
版权归作者所有,任何形式转载请联系作者. 作者:tison(来自豆瓣) 来源:https://www.douban.com/note/733279598/ Monad 在实际开发中的应用 不同的人会从 ...
- POJ2084 Game of Connections 卡特兰数 关于卡特兰数经典的几个问题
Game of Connections Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 9128 Accepted: 44 ...
- python 整型、字符串常用方法、for循环
整型--int 定义:用于比较和计算 python2和python3: python2:python2中油int(整型)和long(长整型):1231312L+ 进制转换: 十进制转二进制:正除2,获 ...
- 宝塔Linux面板命令
安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/inst ...
- linux ssh连接自动断开问题
场景描述:云上的虚拟机使用public ip连接ssh时,一直提示已经连接,但是就会自动关闭 1. 通过正常虚拟机作为跳板,能够连接到目标机子上,检查发现进程正常,但是就一直连接不上 [root@te ...
- NTP服务器实现
时间服务器是一种计算机网络仪器,它从参考时钟获取实际时间,再利用计算机网络把时间信息传递给用户.虽然还有一些比较少用或过时的协议仍然在使用,但现时最重要及广泛使用,作为时间信息发送和同步化的协议是网络 ...