SpringMVC Controller之间的重定向和转发
- 同一个controller之间重定向和转发 
 ①redirect 在Controller的映射方法中,其返回值改为:return "redirect:XXX";
 ②forward 这里不贴具体代码,因为和上面的 重定向相同。
- 不同一个controller之间重定向和转发 
 ①redirect 不同的controller之间进行重定向的时候最主要的一点就是,要指定具体controller的命名空间即RequestMapping(value="redirectval"),还要指定为根目录,如果不是根目录则同样会在同一个controller中进行查找,这样的话,找不到会报错,或错误重定向.
 在Controller的映射方法中,其返不回值改为:return "redirect:/XXX";
 注意这里要加“/”来从根目录开始。
 ②forward 这个也是一样只要命名空间和根目录正确就没问题;
- 传递参数 
 ①手动拼接,在URL后面使用?id=XXX&name=XXX,这样就可以在重定向的那个方法中进行数据的获取,获取方式和从前台接受收据一样。
@RequestMapping(value="/update.do")
public Stringupdate(User user){
// 这里使用了转发,在书写格式上转发和重定向一样
return"forward:xxx?code=200&status=ok!";
}②使用RedirectAttributes  这个对象。通过这个对象就可以传递数据,这个类的对象有两个方法可以传递参数: 
(1)、使用 addAttribute(key,value) 这个方法进行参数的传递,这种方式的传递和第一种一样会在请求路径中显示。
@RequestMapping(value="/update.do")
    public Stringupdate(User user,RedirectAttributes attr){
    attr.addAttribute("code",200);
    attr.addAttribute("status","success");
    return"redirect:xxx";
}(2)、使用addFlashAttribute(key,value) 这个方法进行传递,而这种方式就是将这个值放在了session中,所以参数不会在url的后面,如果刷新页面则值就没了!接收方式还是与方法一一样。
@RequestMapping(value="/update.do")
    public Stringupdate(User user,RedirectAttributes attr){
    attr.addAttribute("code",200);
    attr.addAttribute("status","success");
    return"redirect:xxx";
}③使用addFlashAttribute
@RequestMapping(value="/update.do")
public Stringupdate(User user,RedirectAttributes arr){
    arr.addFlashAttribute("code","200");
    arr.addFlashAttribute("status","ok!");
    Map<String,Object>map= new HashMap<String,Object>();
    map.put("id",user.getId());
    map.put("name",user.getName());
    map.put("sex",user.getSex());
    userService.updateUser(map);
    return"redirect: select.do";
}该方法参数接收时不能直接接收,需要使用Map
@RequestMapping(value="/select.do")
public Stringselect(String code,String status,Map<String,Object>map,Map<String,Object> maps){
    Integerid=1;
    //从执行结果我们看到这里code为null
    String codes=code;
    //从执行结果我们看到这里status为null
    String success=status;
    System.out.println(codes);
    System.out.println(success);
    //我们在方法中添加了一个参数maps这里就能获得参数
    Stringmcode=(String)maps.get("code");
    Stringmstatus=(String)maps.get("status");
    //从输出结果我们能看到,这里有值,使用model也可以获得值,就是不知道怎么获取所以使用了map
    System.out.println(mcode);
    System.out.println(mstatus);
    System.out.println(maps.toString());
    List<Map<String,Object>>list= new ArrayList<Map<String,Object>>();
    list=userService.selectUser(id);
    map.put("mylist","you value");
    return"index";
}注意:使用:forward  转发这样获取不到值,这里forwar获取不到值和他的存储方式相关,因为他就是存在session中一转发就没值了,所以就为null。 
以上参考了这篇博客,详细请看:https://blog.csdn.net/QH_JAVA/article/details/44850687
SpringMVC Controller之间的重定向和转发的更多相关文章
- SpringMVC    配置  &  初识  &   注解  &重定向与转发
		初识 在web.xml 中注册DispatcherServlet <servlet> <servlet-name>springmvc</servlet-name> ... 
- SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发
		1. SpringMVC与Servlet的关系 SpringMVC框架是建立在Servlet之上的,提供各种功能,各种封装,各种方便的同时,它一点儿也没有限制Servlet,我们完全可以在Spring ... 
- SpringMVC系列(九)自定义视图、重定向、转发
		一.自定义视图 1. 自定义一个视图HelloView.java,使用@Component注解交给Spring IOC容器处理 package com.study.springmvc.views; i ... 
- SpringMVC(一) 简单代码编写,注解,重定向与转发
		SpringMVC是什么 SpringMVC是目前最好的实现MVC设计模式的框架,是Spring框架的一个分支产品,以SpringIOC容器为基础,并利用容器的特性来简化它的配置.SpringMVC相 ... 
- springMVC controller间跳转 重定向 传递参数的方法
		springMVC controller间跳转 重定向 传递参数的方法 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参 ... 
- springMVC带参数请求重定向
		SpirngMVC返回逻辑视图名 可以分下面几种情况: 1. servlet进行请求转发,返回到jsp页面,如 return "index.jsp" ; 2. servlet 返 ... 
- 1. 处理静态资源 2. controller如何接受请求得参数 3. 如何把controller得数据保存到view. 4. 在controller如何完成重定向到指定路径 5. controller返回json数据
		1. 1. 处理静态资源2. controller如何接受请求得参数3. 如何把controller得数据保存到view.4. 在controller如何完成重定向到指定路径5. controller ... 
- [转]SpringMVC Controller介绍及常用注解
		一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ... 
- SpringMVC Controller介绍
		SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ... 
随机推荐
- javascript 对象(四)
			一.对象概述 对象中包含一系列的属性,这些属性是无序的.每个属性都有一个字符串key和对应的value. var obj={x:1,y:2}; obj.x; obj.y; 1.为什么属性的key必须是 ... 
- ajax一次获取整个表单的数据
			$.ajax({ cache: true, type: "POST", url:ajaxCallUrl, data:$('#yourformid').serialize(),// ... 
- ipython启动 自动导入模块 自动%logstart
			1. 参考 启动ipython或python解释器自动导入组件(例如:numpy) http://ipython.org/ipython-doc/stable/config/intro.html#se ... 
- UICollectionViewController的用法1
			UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableVie ... 
- MyBatis的Mapper接口以及Example的实例函数及详解
			来源:https://blog.csdn.net/biandous/article/details/65630783 一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 ... 
- 018 easygui的使用
			一:安装 1.说明 看到小甲鱼的视频,也看了一些人家的安装,感觉不是太好. 还是想使用pip这种傻瓜的安装方式. 这个地方在实验了很多次,总算是可以了. 2.安装 3.测试 二:小测试 1.输入窗口 ... 
- Supervisor进程管理&开机自启
			这几天在用supervisor管理爬虫和Flask, 每次都记不住命令,花点时间记录下. supervisor是一个进程管理工具,用来启动.停止.重启和监测进程.我用这个东西主要用来监测爬虫和Flas ... 
- Leading and Trailing(巧妙利用log解决次方问题)
			Sample Input 5 123456 1 123456 2 2 31 2 32 29 8751919 Sample Output Case 1: 123 456 Case 2: 152 936 ... 
- HDU 1054 Strategic Game (最小点覆盖)【二分图匹配】
			<题目链接> 题目大意:鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他无法找到解决方案,速度不够快,那么他很伤心.现在,他有以下的问题.他必须捍卫一个中世纪的城市,形成了树的道路.他把战士的 ... 
- Mysql8.0升级后,Navicat连接报错caching_sha2_password 问题
			需要重新配置加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER ... 
