码迷,mamicode.com
首页 > 编程语言 > 详细

Spring MVC 重定向

时间:2019-06-29 12:50:55      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:not   角色   参数   role   bsp   图片   mic   tno   就是   

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在一个会话期有效),重定向后就会将其清除,这样就能够传递数据给下一个地址了

技术图片

 

Spring MVC 重定向

标签:not   角色   参数   role   bsp   图片   mic   tno   就是   

原文地址:https://www.cnblogs.com/ooo0/p/11106027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!