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注解驱动的标签