iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringMVC如何重新定向redirect请求中携带数据方式
  • 783
分享到

SpringMVC如何重新定向redirect请求中携带数据方式

2023-06-22 03:06:10 783人浏览 独家记忆
摘要

这篇文章给大家分享的是有关springMVC如何重新定向redirect请求中携带数据方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。springmvc 重新定向redirect请求中携带数据在控制器方法返回的

这篇文章给大家分享的是有关springMVC如何重新定向redirect请求中携带数据方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

springmvc 重新定向redirect请求中携带数据

  • 在控制器方法返回的视图名称中使用了redirect:前缀,这时返回的String不是用来寻找视图,而是浏览器进行跳转的路径:

return “redirect:/spitter/” + spitter.getUsername();

当一个控制器返回的是一个redirect时,原来的request会终止,并且会开启一个新的Http请求。原来request中所有的model数据都会清空。新的request不会有任何的model数据,如图:

SpringMVC如何重新定向redirect请求中携带数据方式

现在不能再redirect时使用model来传递数据了。但是还有其他方法用来从重定向的方法中获取数据:

  • 将数据转换为路径参数或者查询参数

  • 在flash属性中发送数据首先来看一下Spring如何在路径参数或者查询参数中传递数据。

使用URL模版重定向

@RequestMapping(value="/reGISter", method=POST)public String processRegistration(Spitter spitter, Model model) {    spitterRepository.save(spitter);    model.addAttribute("username", spitter.getUsername());    return "redirect:/spitter/{username}";}@RequestMapping(value = "/{username}", method = RequestMethod.GET)    public String showSpitterProfile(@PathVariable String username, Model model) {        System.out.println("showSpitterProfile");        Spitter spitter = spittleRepository.findByUsername(username);        model.addAttribute(spitter);        return "Profile";    }

model中其他的原始值也会作为查询参数添加到重定向URL中。例如,除了username,model同时也包括新建的Spitter对象的id属性:

@RequestMapping(value="/register", method=POST)public String processRegistration(Spitter spitter, Model model) {    spitterRepository.save(spitter);    model.addAttribute("username", spitter.getUsername());    model.addAttribute("spitterId", spitter.getId());    return "redirect:/spitter/{username}";}

但是由于model中的spitterId属性并没有映射到URL中的占位符,它会自动作为查询参数。

如果username是habuma,spitterId是42,那么返回的重定向路径将是/spitter/habuma?spitterId=42。

使用flash属性

Spring提供了通过RedirectAttributes来设置flash属性,RedirectAttributes作为Model的子接口,新增了一些方法用来设置flash属性。

@RequestMapping(value="/register", method=POST)public String processRegistration(Spitter spitter, RedirectAttributes model) {    spitterRepository.save(spitter);    model.addAttribute("username", spitter.getUsername());    model.addFlashAttribute("spitter", spitter);    return "redirect:/spitter/{username}";}

在重定向执行之前,所有的flash属性都会复制到会话中。在重定向后,存在会话中的flash属性会被取出,并从会话转移到模型之中。处理重定向的方法就能从模型中访问Spitter对象了,就像获取其他的模型对象一样

SpringMVC如何重新定向redirect请求中携带数据方式

@RequestMapping(value = "/{username}", method = RequestMethod.GET)public String showSpitterProfile(@PathVariable("username") String username, Model model) {    if (!model.containsAttribute("spitter")) {        Spitter spitter = spitterRepository.findByUsername(username);        model.addAttribute(spitter);    }    return "profile";}

showSpitterProfile()方法所做的第一件事就是检查是否存有key为spitter的model属性。如果模型中包含spitter属性,那就什么都不用做了。这里面包含的Spitter对象将会传递到视图中进行渲染。但是如果模型中不包含spitter属性的话,那么showSpitterProfile()将会从Repository中查找Spitter,并将其存放到模型中。

重新定向显示数据

........<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>........username:<c:out value="${spitter.username}"/><br/>firstName:<c:out value="${spitter.firstName}"/>lastName: <c:out value="${spitter.lastName}"/><br/>email:<c:out value="${spitter.email}"/>....

SpringMVC 几种重定向携带数据方法

1.拼接字符串

return "redirect:/page/second?param1=lay&param2=lay2";

2.采用RedirectAttribute来传参数

public String first(RedirectAttribute redirectAttribute){    redirectAttribute.addAttribute("param1", "lay");    return "redirect:/page/second";}

3.RedirectAttribute—–addFlashAttribute()的用法

@Controller@RequestMapping("/page")public class redirectDemo{    @RequestMapping("/first")    public String first(RedirectAttribute redirectAttribute){        redirectAttribute.addFlashAttibute("param1", "lay");        return "redirect:/page/second";    }    @RequestMapping("/second")    public String second(@ModelAttribute("param1") String param1){        System.out.println(param1);        return "second";    }}

感谢各位的阅读!关于“SpringMVC如何重新定向redirect请求中携带数据方式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: SpringMVC如何重新定向redirect请求中携带数据方式

本文链接: https://www.lsjlt.com/news/302109.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringMVC重新定向redirect请求中携带数据方式
    目录SpringMVC 重新定向redirect请求中携带数据使用URL模版重定向使用flash属性SpringMVC 几种重定向携带数据方法1.拼接字符串2.采用RedirectA...
    99+
    2024-04-02
  • SpringMVC如何重新定向redirect请求中携带数据方式
    这篇文章给大家分享的是有关SpringMVC如何重新定向redirect请求中携带数据方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringMVC 重新定向redirect请求中携带数据在控制器方法返回的...
    99+
    2023-06-22
  • springmvc请求转发和重定向问题(携带参数和不携带参数)
    目录请求转发的三种方式1、传统的请求转发2、SpringMVC中不经过视图解析器的请求转发3、请求转发经过视图解析器重定向1、传统的重定向2、SpringMVC中不带参数的重定向3、...
    99+
    2022-11-13
    springmvc请求转发 springmvc重定向 springmvc请求
  • 使用SpringMVC在redirect重定向的时候携带参数的问题
    目录在redirect重定向的时候携带参数问题1. addAttribute2. addFlashAttributeredirect重定向3种方式(带参数)redirect重定向流程...
    99+
    2024-04-02
  • springboot如何重定向携带数据 RedirectAttributes
    目录当controller层需要重定向到指定页面时,如何携带数据?RedirectAttributes的使用RedirectAttributes存值后读取不到当controller层...
    99+
    2024-04-02
  • SpringMVC如何用Post方式重定向
    目录SpringMVC用Post方式重定向Post方式重定向以上方法并不好用,我看了作者写的另一个解决办法SpringMVC的Post提交405错误,只能使用重定向方式前端文件后端控...
    99+
    2022-11-13
    SpringMVC Post Post重定向 SpringMVC重定向
  • PHP中如何实现页面跳转并携带POST请求数据
    PHP是一种常用的服务器端脚本语言,用于开发动态网站和Web应用程序。在开发Web应用程序时,经常需要实现页面跳转并携带POST请求数据。本文将介绍如何在PHP中实现这一功能,并提供具...
    99+
    2024-04-02
  • vue异步请求数据重新渲染方式
    目录vue异步请求数据重新渲染下面介绍一种方法解决自定义组件异步获取数据重新渲染视图层逻辑层vue异步请求数据重新渲染 vue异步请求数据时往往不能及时更新, 下面介绍一种方法解决 ...
    99+
    2024-04-02
  • 如何在 ASP 中处理并发请求的重定向?
    ASP(Active Server Pages)是一种用于创建动态网页的服务器端脚本语言。在处理网站请求时,ASP可能会遇到并发请求的情况,这时候就需要进行重定向来保证网站的正常运行。本文将介绍如何在ASP中处理并发请求的重定向问题。 一、...
    99+
    2023-07-03
    同步 重定向 并发
  • SpringMVC环境下如何实现的Ajax异步请求JSON格式数据
    小编给大家分享一下SpringMVC环境下如何实现的Ajax异步请求JSON格式数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2024-04-02
  • linux中shell如何实现数据重定向
    这篇文章主要为大家展示了“linux中shell如何实现数据重定向”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中shell如何实现数据重定向”这篇文章吧。linux文件描述符:可以理...
    99+
    2023-06-13
  • ASP 中如何处理多个客户端同时请求的重定向?
    在ASP应用程序中,有时候需要将用户请求重定向到另一个页面或者网站。这个过程通常是通过向客户端发送一个HTTP重定向响应来实现的。然而,在多个客户端同时请求时,可能会出现一些问题,比如多个客户端同时请求同一个页面,但是只有一个客户端能够成...
    99+
    2023-07-03
    同步 重定向 并发
  • 大数据容器中如何优化 ASP 重定向?
    随着互联网技术的飞速发展,网站的访问量越来越大,同时访问的方式也越来越多样化。ASP重定向技术能够帮助网站实现URL重定向,提升用户体验,但是在大数据容器中使用ASP重定向技术也存在一些问题,本文将介绍如何优化ASP重定向技术。 一、ASP...
    99+
    2023-11-12
    重定向 大数据 容器
  • 容器中的 ASP 重定向:如何应对大数据?
    ASP是一种广泛应用的Web开发技术,它的重定向功能在应用程序中起着至关重要的作用。随着互联网技术的不断发展,数据量的增大,如何有效处理大数据成为了开发者所关注的重要问题。在容器中使用ASP重定向,也需要考虑如何应对大数据的问题。 一、AS...
    99+
    2023-11-12
    重定向 大数据 容器
  • vue中如何使用axios数据请求get、post方法
    小编给大家分享一下vue中如何使用axios数据请求get、post方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue中使用axios方法我们先安装axios这个方法npm inst...
    99+
    2024-04-02
  • PHP接口中如何处理重定向的数据类型?
    PHP是一种常用的服务器端编程语言,它可以与其他编程语言进行交互,提供了丰富的函数库和工具,方便开发者快速构建Web应用程序。在开发Web应用程序时,我们通常会使用API接口来处理数据请求和响应。在API接口中,重定向是一种常见的操作。本文...
    99+
    2023-10-21
    接口 重定向 数据类型
  • 如何在Java和JavaScript中实现重定向的数据传递?
    重定向是一种常用的Web开发技术,它可以将用户请求重定向到另一个URL,并且可以在重定向过程中传递数据。在Java和JavaScript中实现重定向的数据传递有许多不同的方法,本文将为大家介绍其中的一些方法。 一、Java中实现重定向的数据...
    99+
    2023-06-26
    重定向 javascript 教程
  • Go Shell重定向技巧:为何在大数据处理中如此重要?
    Go是一种快速、高效的编程语言,它的Shell也同样强大。在Go Shell中,重定向技巧是非常重要的,特别是在大数据处理中。本文将介绍Go Shell重定向技巧的原理、用途和示例代码。 一、什么是重定向? 在计算机中,重定向是一种将输出...
    99+
    2023-06-22
    shell 重定向 大数据
  • Bash中的Java数据类型:如何重定向您的输出?
    Bash是一种常用的Unix shell,它提供了许多功能,包括文件管理、进程管理和命令行界面。Java是一种广泛使用的编程语言,它也提供了许多数据类型和操作。在Bash中,您可以使用Java来处理数据,并使用重定向将输出发送到文件或其他...
    99+
    2023-11-11
    数据类型 重定向 bash
  • Bash中的Java数据类型:如何实现重定向操作?
    Bash是一种常用的Unix shell,它提供了很多基础的命令和工具,可以用于执行各种系统管理和编程任务。Java是一种广泛使用的编程语言,也被用于开发各种各样的应用程序。在Bash中,我们可以通过重定向操作将Java程序输出的数据重定...
    99+
    2023-11-11
    数据类型 重定向 bash
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作