Spring MVC-视图
目录
- 概括
- 环境
- ThymeleafView
- InternalResourceView
- RedirectView
- view-controller
概括
Spring MVC定义了viewResolver和View接口,在浏览器中呈现模型中的数据。Spring MVC视图默认有转发视图(InternalResourceView)和重定向视图(RedirectView)
环境
IDE:idea 2020.3
构建工具:maven-3.8.1
服务器:tomcat9
Spring版本:5.3.1
org.springframework
spring-webmvc
5.3.1
ch.qos.logback
logback-classic
1.2.3
javax.servlet
javax.servlet-api
3.1.0
provided
org.thymeleaf
thymeleaf-spring5
3.0.12.RELEASE
<?xml version="1.0" encoding="UTF-8"?>
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceResponseEncoding
true
CharacterEncodingFilter
/*
DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springMVC.xml
1
DispatcherServlet
/
ThymeleafView
当控制器方法的视图名称没有前缀时,视图名称会被视图解析器解析,通过视图解析器的前缀、后缀得到路径后以转发的形式跳转
首页
testThymeleafView
package com.fly.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author 26414
*/
@Controller
public class ViewController {
@RequestMapping("/")
public String index() {
return "index";
}
@RequestMapping("/testThymeleafView")
public String testThymeleafView() {
return "view";
}
}
view
view
在testThymeleafView方法上打断点,以debug模式启动服务器
InternalResourceView
SpringMVC中默认的转发视图是InternalResourceView,当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图。
/**
*ViewController
*/
@RequestMapping("/testInternalResourceView")
public String testInternalResourceView() {
return "forward:/testThymeleafView";
}
testInternalResourceView
在方法testInternalResourceView上打断点,以debug模式启动服务器
RedirectView
SpringMVC中默认的重定向视图是RedirectView,当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图。
/**
*ViewController
*/
@RequestMapping("/testRedirect")
public String testRedirect() {
return "redirect:/testThymeleafView";
}
testRedirect
在方法testRedirect上打断点,以debug模式启动服务器
view-controller
如果一个控制器方法仅仅用来实现页面跳转,可以将处理器方法使用view-controller标签进行表示,当SpringMVC中设置任何一个view-controller时,其他控制器中的请求映射将全部失效,此时需要在SpringMVC的核心配置文件中设置开启mvc注解驱动的标签