spring中如何重定向视图

fiy 其他 36

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Spring中,我们可以使用重定向来进行视图跳转。重定向是一种在不同请求路径之间进行页面跳转的方式,它会发送一个新的请求,并返回一个新的视图。

    要在Spring中实现重定向,我们可以使用两种方法:一种是使用RedirectView类,另一种是使用RedirectAttributes接口。

    1. 使用RedirectView类进行重定向:

    首先,在控制器方法中返回一个RedirectView对象,并设置重定向的路径:

    @Controller
    public class MyController {
    
        @RequestMapping("/redirect")
        public RedirectView redirect() {
            RedirectView redirectView = new RedirectView();
            redirectView.setUrl("http://www.example.com");
            return redirectView;
        }
    
    }
    

    上述示例中,控制器方法redirect()返回一个RedirectView对象,并设置重定向的路径为"http://www.example.com"。这样,当访问"/redirect"路径时,会自动跳转到"http://www.example.com"页面。

    1. 使用RedirectAttributes接口进行重定向:

    首先,在控制器方法的参数列表中添加一个RedirectAttributes对象,并使用addFlashAttribute()方法设置重定向后的参数:

    @Controller
    public class MyController {
    
        @RequestMapping("/redirect")
        public String redirect(RedirectAttributes redirectAttributes) {
            redirectAttributes.addFlashAttribute("message", "Hello Redirect!");
            return "redirect:/message";
        }
    
        @RequestMapping("/message")
        public ModelAndView showMessage(@ModelAttribute("message") String message) {
            ModelAndView modelAndView = new ModelAndView("message");
            modelAndView.addObject("message", message);
            return modelAndView;
        }
    
    }
    

    上述示例中,控制器方法redirect()接收一个RedirectAttributes对象,并使用addFlashAttribute()方法设置重定向后的参数。然后,方法返回"redirect:/message"字符串,表示重定向到"/message"路径。

    接着,在另一个控制器方法showMessage()中,我们使用@ModelAttribute注解来获取重定向后的参数,并将其传递给"message"视图。

    这样,当访问"/redirect"路径时,会先执行redirect()方法进行重定向,并将参数传递给"/message"路径的showMessage()方法,最终显示"message"视图。

    以上就是在Spring中实现重定向视图的两种方法。通过使用RedirectView类或RedirectAttributes接口,我们可以方便地进行视图跳转,并传递参数。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Spring中,可以使用两种方式来实现重定向视图。

    1. 通过控制器方法返回字符串
      可以在控制器方法中返回一个字符串,这个字符串是重定向的目标路径。Spring MVC会自动将该字符串解析为重定向视图,并将请求重定向到相应的路径。

    示例代码如下:

    @Controller
    public class MyController {
      
        @RequestMapping("/redirect")
        public String redirect() {
            return "redirect:/target"; // 重定向到 /target 路径
        }
        
        @RequestMapping("/target")
        public String target() {
            return "targetView"; // 返回目标视图的逻辑视图名
        }
    }
    

    在上面的示例中,当访问 /redirect 路径时,控制器方法 redirect() 会返回字符串 "redirect:/target",Spring MVC会将其解析为重定向视图,并将请求重定向到 /target 路径。然后控制器方法 target() 会处理 /target 请求,返回目标视图的逻辑视图名 "targetView",Spring MVC会根据该逻辑视图名解析出实际的视图路径,并渲染该视图。

    1. 通过控制器方法返回 RedirectView
      除了返回字符串,还可以在控制器方法中直接返回 RedirectView 对象来实现重定向视图。

    示例代码如下:

    @Controller
    public class MyController {
    
        @RequestMapping("/redirect")
        public RedirectView redirect() {
            RedirectView redirectView = new RedirectView();
            redirectView.setUrl("/target"); // 重定向到 /target 路径
            return redirectView;
        }
    
        @RequestMapping("/target")
        public ModelAndView target() {
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.setViewName("targetView"); // 设置目标视图的逻辑视图名
            return modelAndView;
        }
    }
    

    在上面的示例中,控制器方法 redirect() 直接返回一个 RedirectView 对象,该对象指定了重定向的目标路径。控制器方法 target() 返回一个 ModelAndView 对象,其中设置了目标视图的逻辑视图名 "targetView"。Spring MVC会根据 RedirectView 对象和 ModelAndView 对象来实现请求的重定向和视图渲染。

    除了以上两种方式,还可以使用重定向前缀 "redirect:" 来实现重定向视图,比如 "redirect:/target"。在这种方式下,Spring MVC会自动将字符串解析为重定向视图,并将请求重定向到相应的路径。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Spring中,可以使用多种方法来实现重定向视图。下面是一种常用的方法:

    1. 使用RedirectView类:
    @RequestMapping("/redirect")
    public RedirectView redirect() {
      RedirectView redirectView = new RedirectView();
      redirectView.setUrl("/new-url");
      return redirectView;
    }
    

    以上代码中,RedirectView类表示一个重定向视图,通过设置url属性来指定重定向的URL。当浏览器访问/redirect路径时,Spring会返回一个重定向响应,将用户重定向到/new-url

    1. 使用RedirectAttributes参数:
    @RequestMapping("/redirect")
    public String redirect(RedirectAttributes redirectAttributes) {
      redirectAttributes.addFlashAttribute("message", "Redirected!");
      return "redirect:/new-url";
    }
    

    以上代码中,RedirectAttributes参数可以用来设置重定向时传递的属性。使用addFlashAttribute方法可以将属性添加到重定向请求的Flash属性中,这样在重定向后的视图中可以通过RedirectAttributes参数来获取这些属性的值。

    1. 使用org.springframework.web.servlet.view.RedirectView类:
    @RequestMapping("/redirect")
    public ModelAndView redirect() {
      ModelAndView modelAndView = new ModelAndView(new RedirectView("/new-url", true));
      return modelAndView;
    }
    

    以上代码中,使用org.springframework.web.servlet.view.RedirectView类来创建一个重定向视图。第一个参数是重定向的URL,第二个参数表示是否使用相对URL。将RedirectView对象传递给ModelAndView构造函数,然后返回ModelAndView对象。

    无论使用哪种方法,Spring都会将请求重定向到指定的URL,并在浏览器中显示新的视图。这种重定向方式可以在Spring MVC应用程序中实现页面之间的导航。重定向视图通常用于POST请求后的重定向,以避免对POST请求执行的操作重复执行。

    请注意,以上代码中的/new-url是示例URL,您需要根据您的实际应用程序配置相应的URL。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部