SpringMVC 重定向参数RedirectAttributes实例
目录
- 重定向参数RedirectAttributes
- 1. addAttribute
- 2. addFlashAttribute
- 重定向携带参数问题
- 问题描述
- 问题来源
重定向参数RedirectAttributes
SpringMVC 中常用到 redirect 来实现重定向。但使用场景各有需求,如果只是简单的页面跳转显然无法满足所有要求,比如重定向时需要在 url 中拼接参数,或者返回的页面需要传递 Model。
SpringMVC 用 RedirectAttributes 解决了这两个需要。
1. addAttribute
@RequestMapping("/save") public String save(User user, RedirectAttributes redirectAttributes) { redirectAttributes.addAttribute("param", "value1"); return "redirect:/index"; }
请求 /save 后,跳转至/index,并且会在url拼接 ?param=value1。
2. addFlashAttribute
@RequestMapping("/save") public String save(User user, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("param", "value1"); return "redirect:/index"; }
请求 /save 后,跳转至 /index,并且可以在 index 对应的模版中通过表达式,比如 jsp 中 jstl 用 ${param},获取返回值。该值其实是保存在 session 中的,并且会在下次重定向请求时删除。
RedirectAttributes 中两个方法的简单介绍就是这样。
重定向携带参数问题
问题描述
A.jsp发送请求进入Controller,并想重定向到B.jsp并携带参数,发现携带的参数前台获取不到,然后采用以下方法即可
@RequestMapping("/index") public String delete(String id, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("msg","删除成功!"); return "redirect:hello"; }
@RequestMapping("hello") public String index( @ModelAttribute("msg") String msg) { return "sentinel"; }
首先进入delete方法,将msg放在redirectAttributes里,然后重定向到hello,通过@ModelAttribute(“msg”) String msg获取到msg的值,那么自然sentinel页面就能获取到msg的值。
问题来源
B.jsp发送请求,跳转到A.jsp,并将请求所产生的数据携带到A页面。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
SpringMVC 跨重定向请求传递数据的方法实现
执行完post请求后,通常来讲一个最佳实践就是执行重定向.重定向将丢弃原始请求数据,原始请求中的模型数据和请求都会消亡.可以有效避免用户浏览器刷新或者后退等操作,直接间接地重复执行已经完成的post请求. 在控制方法中返回的视图名称中,在String前使用"redirect:"前缀,那么这个String就不是来查找视图的,而是浏览器进行重定向的路径,相当于重新发出请求. 重定向通常相当于从一个controller到另一个controller. (1)使用URL模板以路径变量和查询参数的
-
Springmvc中的转发重定向和拦截器的示例
本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型... 来声明参数类型,例如: public static void function(int... numbers) 在实现方法体时,可变参数是作为数组来处理 public class Test{ public static void main(String[] args){ System.out.println(Test.sum(1,2,3)); System.out.pri
-
springmvc重定向实现方法解析
这篇文章主要介绍了springmvc重定向实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (1)一般情况下,控制器方法返回字符串类型的值会被当做逻辑视图名来处理. (2)如果返回的字符串带forward:或redirect:前缀时,springmvc会对它们进行特殊处理.将forward:和redirect:当成指示符,其后的字符串当做url来处理. @RequestMapping("/springmvc") @Contr
-
使用springmvc配置视图解析器和重定向方式
目录 springmvc配置视图解析器和重定向 为什么需要配置视图解析器 配置步骤 解决配置视图解析器带来的问题 重定向 配置多个视图解析器 springmvc controller springmvc配置视图解析器和重定向 为什么需要配置视图解析器 看图 配置步骤 第一步:需要在springmvc.xml配置 <!-- 配置SpringMVC的视图解析器: 配置前缀和后缀 --> <bean class="org.springframework.web.servlet.vie
-
SpringMVC中转发与重定向的区别浅析
转发和重定向 相同点 都是web开发中资源跳转的方式. 不同点 转发:是服务器内部的跳转,浏览器的地址栏不会发生变化.从一个页面到另一个页面的跳转还是同一个请求,也即是只有一个请求响应.可以通过request域来传递对象. 重定向:是浏览器自动发起对跳转目标的请求,浏览器的地址栏会发生变化.从一个页面到另一个页面的跳转是不同的请求,也即是有两个或两个以上的不同的请求的响应.无法通过request域来传递对象. 在SpringMVC中实现转发和重定向 (1)在SpringMVC中仍然以传统方式进行
-
详解SpringMVC重定向传参数的实现
在spring的一个controller中要把参数传到页面,只要配置视图解析器,把参数添加到Model中,在页面用el表达式就可以取到.但是,这样使用的是forward方式,浏览器的地址栏是不变的,如果这时候浏览器F5刷新,就会造成表单重复提交的情况.所以,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交. jsp文件: <%@ page language="java" contentType="text/html; charset=UTF-8&q
-
SpringMVC中重定向model值的获取方式
目录 SpringMVC重定向model值的获取 1.步骤一:在控制器中编写 2.编写对应跳转 3.测试:在浏览器访问自己项目下的对应控制器 4.然后浏览器跳转 SpringMVC中model的理解 1.首先将数据添加到Model中 2.然后再将其在页面上展示出来 SpringMVC重定向model值的获取 1.步骤一:在控制器中编写 /*重定向测试*/ @RequestMapping("/m1/t2") public String test1(Model model, String
-
简单谈谈SpringMVC转发和重定向的区别
在servlet中,转发和重定向是由request和response完成的.两者之间的区别请看我之前的文章.那么在springMVC中是如何完成的呢? /**转发**/ @RequestMapping("/login.do") public String login(HttpServletRequest request,HttpServletResponse response){ request.setAttribute("message", "hello
-
SpringMVC 重定向参数RedirectAttributes实例
目录 重定向参数RedirectAttributes 1. addAttribute 2. addFlashAttribute 重定向携带参数问题 问题描述 问题来源 重定向参数RedirectAttributes SpringMVC 中常用到 redirect 来实现重定向.但使用场景各有需求,如果只是简单的页面跳转显然无法满足所有要求,比如重定向时需要在 url 中拼接参数,或者返回的页面需要传递 Model. SpringMVC 用 RedirectAttributes 解决了这两个需要.
-
SpringMVC通过注解获得参数的实例
SpringMVC可以通过RequestParam注解来映射获得参数,具体用法如下: 例子: 配置过程省略 1.新建controller类 package com.loger.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class RequestParam
-
springmvc 传递和接收数组参数的实例
java url中如何传递数组,springMVC框架controller类如何接收数组参数? 下面介绍一下URL中传递数组参数方法: dd.do?titles[]=col1&titles[]=col2&titles[]=col3 或者使用ajax方式传递: var param = {titles:['col1','col2','col3']}; $.ajax({url:"dd.php", type:"post", data:param, async
-
SpringMVC中参数绑定问题实例详解
目录 前言 1. 参数绑定的过程 2. 默认支持的类型 3. 简单类型的绑定 4. pojo类型的绑定 4.1 普通pojo类型 4.2. 包装的pojo类型 5. 集合类型的绑定 5.1 数组的绑定 5.2 List的绑定 5.2 Map的绑定 总结 前言 众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即spri
-
基于vue.js路由参数的实例讲解——简单易懂
vue中,我们构建单页面应用时候,一定必不可少用到vue-router vue-router 就是我们的路由,这个由vue官方提供的插件 首先在我们项目中安装vue-router路由依赖 第一种,我们提供命令行来安装 npm install vue-router --save 第二种,我们直接去官方github下载 https://github.com/vuejs/vue-router 路由参数设置 1,实例化一个路由,然后路由映射表中的地址带参数,这个参数就是路由的参数 接着给映射表中的路由设
-
SpringMvc接收参数方法总结(必看篇)
接收参数的方式: 1.HttpServletRequest方式接收 public ModelAndView test1(HttpServletRequest req){ String userName = req.getParameter("userName"); String password = req.getParameter("password"); System.out.println(userName); System.out.println(passw
-
postman+json+springmvc测试批量添加实例
postman工具配置和数据准备: 1)在地址栏输入测试IP地址和端口号已经对应的接口地址: 2)在Headers一栏添加参数Content-Type=application/json; 已本地测试为例:对应配置图如下: 3)点击Body一栏,并选择raw,然后在对应的text区域输入要传递和添加的数据集合: 本例已两条数据位例,如下图: 其中每一条数据对象对应后台接口要保存的一条数据库记录,一个java对象: 到此,postMan的配置完成,只要点击send按钮触发发送事件即可已发送json格
-
SpringMVC请求参数的使用总结
本次数据请求使用postman, postman下载地址:https://www.getpostman.com/ 一.页面跳转 1. 页面跳转 @Controller public class IndexController { /** * 进入首页 * * @return 首页页面 */ @RequestMapping("/") public String index(){ return "/index"; } } 2. 请求转发 @Controller publ
-
SpringMvc请求处理参数 和 响应数据处理的示例详解
目录 1.请求处理参数 1.1 请求参数 @RequestParam 1.1.1 不使用 @RequestParam 注解 1.1.3 使用 @RequestParam 注解 1.2 请求头参数 @RequestHeader 1.3 Cookie 参数 @CookieValue 1.4 实体参数 1.5 原生servlet的API接口作为请求参数 2.响应数据处理 2.1 ModelAndView 2.2 Map 2.3 Model 2.4 forward: 转发 和 redirect: 重定向
-
Bootstrap 模态框(Modal)带参数传值实例
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 为了实现父窗体与其的交互,通常需要向其传值,实现带参数的传递,查看数据的唯一性.例如下面窗体:点击任意一个模态框("回复"按钮),如果不做任何处理,则会出现回复混淆,甚至程序出错的情况. 为了实现其回复的唯一性和带参传值的功能,需要做以下处理 实现的效果: 总结 以上所述是小编给大家介绍的Bootstrap 模态框(Modal)带参数传
随机推荐
- Vue渲染函数详解
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- 显示网络配置的批处理文件
- iOS App中实现播放音效和音乐功能的简单示例
- java 归并排序的实例详解
- oracle下实现恢复一个丢失的数据文件的代码
- 关于.NET的集合总结
- JavaScript中函数声明与函数表达式的区别详解
- JS验证邮箱格式是否正确的代码
- asp.net模板引擎Razor中cacheName的问题分析
- wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
- jquery 实现两级导航菜单附效果图
- java interface的两个经典用法
- 用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
- 浅谈linux中的whoami与 who指令
- C#通过反射打开相应窗体方法分享
- 浅谈C++内存分配及变长数组的动态分配
- 详解EventDispatcher事件分发组件
- 对python中字典keys,values,items的使用详解
- ionic使用angularjs表单验证(模板验证)