栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【SpringMVC】SpringMVC的视图、视图控制器与视图解析器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【SpringMVC】SpringMVC的视图、视图控制器与视图解析器

文章目录
    • 一、SpringMVC的视图
    • 二.SpringMVC的视图控制器
    • 三、视图解析器

一、SpringMVC的视图

SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户SpringMVC视图的种类很多,默认有转发视图和重定向视图
当工程引入jstl的依赖,转发视图会自动转换为JstlView
若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得到的是ThymeleafView。
1.ThymeleafView视图
当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转。

@RequestMapping("/test_view")
public String test_view(){
    return "test_view";
}
@Controller
public class ViewController {
    @RequestMapping("/testThymeleafView")
    public String testThymeleafView(){
        return "success";
    }
}
测试Thymeleaf视图


2.转发视图
SpringMVC中默认的转发视图是InternalResourceView
SpringMVC中创建转发视图的情况:
当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:"去掉,剩余部分作为最终路径通过转发的方式实现跳转。
如:“forward:/” , “forward:/employee”

@RequestMapping("/testForward")
public String testForward(){
    return "forward:/testThymeleafView";
}
测试InternalResourceView视图


3.重定向视图
SpringMVC中默认的重定向视图是RedirectView
当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"redirect:“去掉,剩余部分作为最终路径通过重定向的方式实现跳转。
例如"redirect:/”, “redirect:/employee”
注意:
重定向视图在解析时,会先将redirect:前缀去掉,然后会判断剩余部分是否以/开头,若是则会自动拼接上下文路径

@RequestMapping("/testRedirect")
public String testRedirect(){
    return "redirect:/testThymeleafView";
}
测试RedirectView视图


点击超链接即可实现跳转到重定向视图。

二.SpringMVC的视图控制器

1.作用:实现请求地址和视图之间的映射关系
2.使用条件:当前请求映射所对应的控制器方法中没有其他请求过程的处理,只需要设置一个视图名称时。
3.使用方法:在SpringMVC的配置文件中添加SpringMVC的视图控制器,并且开启SpringMVC的注解驱动即可,此时控制器方法既可以被注释。





@Controller
public class TestController {
	//当springmvc的配置文件中使用了视图控制器时,对应的视图控制器的控制方法就可以注释
    
}
三、视图解析器

视图解析目前常用的是Thymeleaf技术,对于jsp视图的解析技术通常使用InternalResourceView进行解析,视图解析器负责解析视图,通过在springmvc的配置文件中进行配置视图解析器。

(1)springMVC.xml



	
    
    
    
        
        
        
        
    

(2)web.xml



    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    
    
    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:springMVC.xml
        
        1
    
    
        DispatcherServlet
        /
    

(3)JspController.java

@Controller
public class JspController {
    @RequestMapping("/success")
    public String success(){
        return "success";
    }
}

(4)index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


我是首页

<%--${pageContext.request.contextPath}代表上下文--%> success.jsp

(5)pom.xml依赖

war

    
    
        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
    

将项目部署到tomcat,然后运行

点击超链接,即可实现页面跳转

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686144.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号