spring-boot 重定向到外站的页面 有更新!

  |   0 评论   |   291 浏览

    在很多情况下,我们写spring-boot后台代码的时候,需要在当前的系统中跳转到其他的外站。
    其实方法很简单,这里介绍两种方法:
    1、直接用java代码在后台跳转:
    方法入口public void sendToTarget(@RequestParam(“url”) String url, HttpServletRequest request, HttpServletResponse response, Model model) ;
    在方法内部用response对象直接跳转就好:response.sendRedirect(url);
    2、第二种方法就是跳转到一个中间页面,再由中间页面的JavaScript作为跳转。当然本方法以theamleaf组建为例说明:
    a、首先,需要将url数据发送到页面。这里可以用model.addAttribute(“url”, url); 将数据传到页面中
    b、在页面中,JavaScript是不能直接拿到该数据的,可以通过中间方式 , 这里设置一个隐藏标签,保存后端传过来的值。
    c、用JavaScript获取该值,然后做重定向。
    var URI = document.getElementById(“dest_url”).value;
    window.location.href=decodeURIComponent(URI);

    这里有一个最大的问题就是,当我们的地址不是以某种协议为开头的时候,不管我们怎么跳转,总是会跳到自己的站内,并在后面拼接上url地址,这样无法完成跳转,并且是一直404. 所以在跳转的url地址这里需要注意一点: url是以协议开头的。 比如http://xxxx
    大家可以注意一下这个点,这里就不贴图了

    theamleaf的pom依赖

    org.springframework.bootgroupId>
    spring-boot-starter-thymeleafartifactId>
    dependency>

    评论

    发表评论

    validate