SpringMVC通过模型视图ModelAndView渲染视图的实现

 更新时间:2020年12月01日 11:21:23   作者:0和1搭建网络世界  
这篇文章主要介绍了SpringMVC通过模型视图ModelAndView渲染视图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

SpringMVC通过模型视图ModelAndView渲染视图大致流程

在这里插入图片描述

代码样例

1.准备工作
A.因为文中用到jsp,所以需要引入jsp标准标签库standard.jar和jstl.jar
官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
本地下载地址:lib_jb51.rar
B.添加Tomcat依赖如下:

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>

2.Web服务器发送请求

http://localhost:8080/user/details?id=12

@Controller
@Slf4j
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserService userService = null;
	
	@RequestMapping("details")
	public ModelAndView details(Long id){
		User user = userService.getUser(id);
		log.info("获取到的user对象-->"+user.toString());
		ModelAndView mv = new ModelAndView();//新建一个模型和视图对象
		mv.setViewName("user/details");//设置模型视图名称
		mv.addObject("user",user);//加入数据模型
		return mv;//返回视图和模型
	}
	
}

A.根据请求路径/user/details通过HandlerMapper机制就能找到对应的控制器进行响应。返回一个HandlerExecutionChain对象,而HandlerExecutionChain对象中的handler(处理器)需要运行,需要处理器适配器HandlerAdapter接口定义的实现类。
B.在处理器调用控制器(controller)时,先通过模型层得到数据,再放入数据模型中,最后返回模型和视图对象。这里的模型视图名称为user/details,走到视图解析器(ViewResolver),解析视图逻辑名称。

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

C.为了定制InternalResourceViewResolver初始化,可以在配置文件application.properties(或yml文件)中进行配置,代码如上。
D.它会以前缀(prefix)和后缀(suffix)以及视图名称组成全路径定位视图。
此例组成的全路径为:/WEB-INF/jsp/user/details.jsp

在这里插入图片描述

jsp存放位置如上:

<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
 <title>用户详情</title>
</head>
<body>
	<center>
		<table border="1">
			<tr>
				<td>标签</td>
				<td>值</td>
			</tr>
			<tr>
				<td>用户编号</td>
				<td><c:out value="${user.id}"></c:out></td>
			</tr>
			<tr>
				<td>用户名称</td>
				<td><c:out value="${user.userName}"></c:out></td>
			</tr>
			<tr>
				<td>用户备注</td>
				<td><c:out value="${user.note}"></c:out></td>
			</tr>
		</table>
	</center>
</body>
</html>

E.视图解析器定位到视图后,视图的作用就是将数据模型渲染。这样就能看到结果

到此这篇关于SpringMVC通过模型视图ModelAndView渲染视图的实现的文章就介绍到这了,更多相关SpringMVC ModelAndView渲染视图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java synchronized关键字使用方式及特性解析

    Java synchronized关键字使用方式及特性解析

    这篇文章主要介绍了Java synchronized关键字使用方式及特性解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java多线程开发ScheduledExecutorService简化方式

    java多线程开发ScheduledExecutorService简化方式

    这篇文章主要为大家介绍了java多线程开发ScheduledExecutorService的简化方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java实现一个达达租车系统的步骤详解

    Java实现一个达达租车系统的步骤详解

    这篇文章主要给大家介绍了利用Java实现一个达达租车系统的步骤,文中给出了详细的实现思路和示例代码,并在文末给出了完整的源码供大家学习下载,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Spring Boot+Drools规则引擎整合详解

    Spring Boot+Drools规则引擎整合详解

    本篇文章主要介绍了Spring Boot+Drools规则引擎整合,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • java词法分析器DDL递归应用详解

    java词法分析器DDL递归应用详解

    这篇文章主要介绍了java词法分析器DDL递归应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • JavaWeb如何实现统一查询接口(jfinal)

    JavaWeb如何实现统一查询接口(jfinal)

    这篇文章主要介绍了JavaWeb如何实现统一查询接口(jfinal),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • java实现即时通信的完整步骤分享

    java实现即时通信的完整步骤分享

    这篇文章主要给大家介绍了关于java实现即时通信的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring多定时任务@Scheduled执行阻塞问题解决

    Spring多定时任务@Scheduled执行阻塞问题解决

    这篇文章主要介绍了Spring多定时任务@Scheduled执行阻塞问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Java基于jeeplus vue实现简单工作流过程图解

    Java基于jeeplus vue实现简单工作流过程图解

    这篇文章主要介绍了Java基于jeeplus vue实现简单工作流过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Springboot整合fastdfs实现分布式文件存储

    Springboot整合fastdfs实现分布式文件存储

    本文主要介绍了Springboot整合fastdfs实现分布式文件存储,详细阐述了Springboot应用程序如何与FastDFS进行集成及演示了如何使用Springboot和FastDFS实现分布式文件存储,感兴趣的可以了解一下
    2023-08-08

最新评论