SpringBoot实现转页功能

 更新时间:2023年05月12日 11:43:01   作者:春哥的魔法书  
这篇文章主要介绍了SpringBoot实现转页功能,页面的跳转在web开发中是经常用的基础功能,感兴趣想要详细了解可以阅读下文,对大家的学习或工作具有一定的参考借鉴价值

内部转页forward

转页配置

在 配置文件 resources > application.properties 中可以找到转页的配置信息,

这些是SpringBoot的默认配置, 是可以省略不写在配置文件中的

#在构建URL时添加到视图名称前的前缀(默认值: classpath:/templates/ )

spring.thymeleaf.prefix=classpath:/templates/

#在构建URL时添加到视图名称后的后缀(默认值:.html )

spring.thymeleaf.suffix=.html

准备页面

在 resources 文件夹下 创建新文件夹 templates , 这个文件夹是springboot默认存放模板页面的文件夹

在文件夹下建立 目标页面 ref.html

同样 在创建文件时, 同时创建了所属的文件夹,

当然也可以分开创建 , 文件夹 Directory

创建后, 添加一句 “hello spring boot”

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    hello spring boot
</body>
</html>

在方法中添加转页

方法是通过返回值来进行转页的, 添加新的方法

String 返回类型对应的返回值 就是 转页路径, 本例中应该是 templates > ref.html

 	@RequestMapping("/test/test02")
    public String test02(){
        System.out.println(" controller 中的测试方法 test 02 ");
        return "转页的路径";
    }

得到页面路径

通过 菜单选择项得到 页面路径

文件上 右键 > Copy Path… > Path From Source Root 将路径复制到剪切板上

将信息替换返回值,

注意要 掐头( templates/ ) 去尾 ( .html ) 因为这些信息已经在配置文件中指定了

@RequestMapping("/test/test02")
    public String test02(){
        System.out.println(" controller 中的测试方法 test 02 ");
        return "ref";
    }

测试

重新启动项目, 在浏览器地址栏输入URL : http://localhost:8080/test/test02

看到 ref.html 页面上添加的信息, 测试成功

重新定向redirect

就是方法执行后, 不是返回页面, 而是跳转到别的方法里, 继续执行

添加新的方法

添加测试方法 test03

返回值 增加 redirect: 关键字

后面是新的请求URL, 本例是 test02,

如果当前方法的请求前缀与重新定向的方法前缀相同( 本例 前缀为 /test ), 可以省略

特别注意 “:” 与后面的URL之间不能有空格

    @RequestMapping("/test/test03")
    public String test03(){
        System.out.println(" controller 中的测试方法 test 03 ");
        return "redirect:test02";
    }

测试

重新启动项目, 在浏览器地址栏输入URL : http://localhost:8080/test/test03

看到 ref.html 页面上添加的信息, 注意URL又从 test03 跳转 成 test02, 说明依然还是 test02 方法转页的

但在idea控制台能看到两个方法被 依次执行

简单转页

当 只是简单的进行转页, 没有具体业务代码时, SpringBoot 提供了简单的转页方式

注意 :

类上加 注解 @Configuration说明这是一个配置类, 项目启动时会优先读取类中的配置信息

类 实现 WebMvcConfigurer 接口 , 并覆盖 addViewControllers() 方法

通过传入 ViewControllerRegistry 类型的参数, 来实现内部转页, 重新定向

package com.yuan.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 内部转页
        registry.addViewController("/").setViewName("start");
        // 重新定向
        registry.addRedirectViewController("/test03", "/");        
    }
}

页面发请求的三种方式

在 resources > templates 文件夹下 增加新的页面 start

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    welcome start <br>
</body>
</html>

由于 在 WebMvcConfig 配置类 配置了默认请求 “/” 转到 start.html, 所以启动项目后默认打开 start页面

<a>超链接

在start.html 里增加 超链接 , 通过 href 属性 对 test02 发请求, 转页到 ref.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    welcome start <br>
    <a href="/test/test02" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >test02</a> <br>
</body>
</html>

重启项目, 浏览器上可以看到超链接

点击超链接测试, 可以转到ref.html页面

form表单

在 start.html 里增加 表单, 通过 action 属性 对 test02 发请求, 转页到 ref.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    welcome start <br>
    <a href="/test/test02" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >test02</a> <br>
    <form action="/test/test02" >
        <input type="submit" value="提交">
    </form>
</body>
</html>

重启项目, 浏览器上可以看到表单的 submit 提交按钮

点击提交按钮, 可以转到ref.html页面

location.href

在 start.html 里增加 按钮 , 通过 按钮的 onclick单击事件 调用函数,

从而通过 location.href属性 对 test02 发请求, 转页到 ref.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    welcome start <br>
    <a href="/test/test02" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >test02</a> <br>
    <form action="/test/test02"  method="post" >
        <input type="submit" value="提交">
    </form>
    <button type="button" onclick="fn()" >按钮</button>
</body>
<script type="text/javascript" >
    function fn() {
        window.location.href = "/test/test02"
    }
</script>
</html>

重启项目, 浏览器上可以看到按钮

点击按钮, 可以转到ref.html页面

到此这篇关于SpringBoot实现转页功能的文章就介绍到这了,更多相关SpringBoot转页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java调用py或者exe文件实现Word转PDF

    Java调用py或者exe文件实现Word转PDF

    这篇文章主要为大家详细介绍了Java如何调用py或者exe文件实现Word转PDF效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下
    2025-03-03
  • SpringCloud使用Feign实现服务调用

    SpringCloud使用Feign实现服务调用

    这篇文章主要为大家详细介绍了SpringCloud使用Feign实现服务调用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Spring执行sql脚本文件的方法

    Spring执行sql脚本文件的方法

    这篇文章主要介绍了Spring执行sql脚本文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 详解SpringMVC中的异常处理

    详解SpringMVC中的异常处理

    这篇文章主要介绍了SpringMVC中的异常处理的相关资料,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-03-03
  • SpringMVC配置404踩坑记录

    SpringMVC配置404踩坑记录

    本文主要介绍了SpringMVC配置404踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别及设定serverTimezone的方法

    com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区

    这篇文章主要介绍了com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别以及设定serverTimezone的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • Maven中设置阿里云镜像的全流程

    Maven中设置阿里云镜像的全流程

    在Maven项目中,配置阿里云镜像可以显著提高依赖下载的速度和稳定性,以下是详细步骤,包括准备工作、修改settings.xml文件、验证配置以及实际案例和示例代码,通过这些步骤,你可以轻松地将Maven配置为使用国内的镜像源
    2025-02-02
  • 一次诡异的full gc查找问题全过程

    一次诡异的full gc查找问题全过程

    这篇文章主要给大家分享介绍了一次诡异的full gc查找问题全部过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧啊
    2018-11-11
  • java后台接收app上传的图片的示例代码

    java后台接收app上传的图片的示例代码

    本篇文章主要介绍了java后台接受app上传的图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java基础概述面试题复习

    Java基础概述面试题复习

    这篇文章主要介绍了java基础面试题,文中的描述非常详细,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08

最新评论