zoukankan      html  css  js  c++  java
  • Spring MVC 重定向

    package com.ssm.chapter15.controller;
    
    import com.ssm.chapter15.pojo.Role;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.support.RedirectAttributes;
    import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
    
    @Controller
    @RequestMapping("/redirect")
    public class RedirectController {
    
        @RequestMapping("/showRoleJsonInfo")
        public ModelAndView showRoleJsonInfo(Long id, String roleName, String note) {
            ModelAndView mv = new ModelAndView();
            mv.setView(new MappingJackson2JsonView());
            mv.addObject("id", id);
            mv.addObject("roleName", roleName);
            mv.addObject("note", note);
            return mv;
        }
    
        @RequestMapping("/addRole")
        //Model为重定向数据模型,Spring MVC会自动初始化它
        public String addRole(Model model, String roleName, String note) {
            // Role role = new Role();
            // role.setRoleName(roleName);
            // role.setNote(note);
            // 插入角色后,会回填角色编号
            // roleService.insertRole(role);
            // 绑定重定向数据模型
            model.addAttribute("roleName", roleName);
            model.addAttribute("note", note);
            // model.addAttribute("id", role.getId());
            return "redirect:./showRoleJsonInfo.do";
        }
    
        @RequestMapping("/addRole2")
        //ModelAndView对象Spring MVC会自定初始化它
        public ModelAndView addRole2(ModelAndView mv, String roleName, String note) {
            // Role role = new Role();
            // role.setRoleName(roleName);
            // role.setNote(note);
            //插入角色后,会回填角色编号
            // roleService.insertRole(role);
            //绑定重定向数据模型
            mv.addObject("roleName", roleName);
            mv.addObject("note", note);
            // mv.addObject("id", role.getId());
            mv.setViewName("redirect:./showRoleJsonInfo.do");
            return mv;
        }
    
        @RequestMapping("/showRoleJsonInfo2")
        public ModelAndView showRoleJsonInfo(Role role) {
            ModelAndView mv = new ModelAndView();
            mv.setView(new MappingJackson2JsonView());
            mv.addObject("role", role);
            return mv;
        }
    
        @RequestMapping("/addRole3")
        //RedirectAttribute对象Spring MVC会自动初始化它
        public String addRole3(RedirectAttributes ra, Role role) {
            //插入角色后,会回填角色编号
            // roleService.insertRole(role);
            // 绑定重定向数据模型
            ra.addFlashAttribute("role", role);
            return "redirect:./showRoleJsonInfo2.do";
        }
    
    }

    返回的字符串带有redirect重定向;
    返回视图来实现重定向;

      在URL重定向的过程中,并不能有效传递对象,因为HTTP的重定向参数是以字符串传递的。这个时候Spring MVC提供了一个方法——flash属性,你需要提供的数据模型就是一个RedirectAttribute
    使用addFlashAttribute方法后,SpringMVC会将数据保存到Session中(Session在一个会话期有效),重定向后就会将其清除,这样就能够传递数据给下一个地址了

  • 相关阅读:
    2018-2019-2 20165316 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
    2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用
    2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析
    2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践
    2018-2019-2 《网络对抗技术》Exp2 后门原理与实践
    2018-2019-2 20165316 《网络对抗技术》Exp1 PC平台逆向破解
    2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165316
    最近决定要重新回到博客了
    清华大学OS操作系统实验lab1练习知识点汇总
    基本数据结构学习总结: 二叉树的遍历
  • 原文地址:https://www.cnblogs.com/ooo0/p/11106027.html
Copyright © 2011-2022 走看看