SpringBoot入门教程(二十二)controller 之间实现…
2020-03-14 16:05:10来源:博客园 阅读 ()
SpringBoot入门教程(二十二)controller 之间实现跳转
如下图,创建两个控制器来测试跳转效果。以下所有跳转方式均以这两个控制器为实例。如下图,创建两个控制器来测试跳转效果。以下所有跳转方式均以这两个控制器为实例。
? 1 sendRedirect方式response.sendRedirect("redirect:映射路径?参数名="+参数值);? 2 forward方式
package com.demo.controller.Jump; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Created by toutou on 2019/1/27. */ @Controller @Slf4j public class FirstJumpController { @RequestMapping(value = "/myfirst") public String MyFirst(){ // 如果使用ModelAndView方式: return new ModelAndView("forward:/mysecond"); // forward是请求转发,是服务器端行为,相当于一次请求,地址栏的 URL 不会改变。 return "forward:/mysecond"; } }? 3 redirect方式
@RequestMapping(value = "/myfirst2") public String MyFirst2(){ // redirect是请求重定向,是客户端行为,相当于两次请求,地址栏的 URL 会改变。 return "redirect:/mysecond"; }? 4 拼接url方式
@RequestMapping(value = "/myfirst3") public String MyFirst3(String name){ // redirect是请求重定向,是客户端行为,相当于两次请求,地址栏的 URL 会改变。 return "redirect:/mysecond2?name=" + name; }
bug: 参数包含中文字符的话,容易出现问题
? 5 RedirectAttributes方式第一种:redirectAttributes.addAttributie("prama",value);
redirectAttributes.addAttribute("prama1",value1); redirectAttributes.addAttribute("prama2",value2); return:"redirect:/path/list"
不足:这种方法相当于在重定向链接地址追加传递的参数:return:"redirect:/path/list?prama1=value1&prama2=value2
(直接追加参数会将传递的参数暴露在链接的地址上,非常的不安全)
第二种:redirectAttributes.addFlashAttribute("prama",value);
redirectAttributes.addFlashAttribute("prama1",str); redirectAttributes.addFlashAttribute("prama2",list); redirectAttributes.addFlashAttribute("prama3",map); return:"redirect:/path/list" ;
此方法隐藏了参数,链接地址上不直接暴露,但是能且只能在重定向的页面上获取prama的值。其原理是参数放到了session
中,session
在跳转之后马上移除对象。如果重定向到一个controller
,是取不到该prama的值的。
public ModelAndView findProjectPage() { ModelAndView modelAndView = new ModelAndView("redirect:映射路径?参数名="+参数值); XXXXXXX return modelAndView; }
v源码地址
https://github.com/toutouge/javademosecond/tree/master/hellospringboot
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
原文链接:https://www.cnblogs.com/toutou/p/springboot_controller.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JAVA统计数字个数
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash