如何将URL作为@PathVariable传递给Spring RestController?

时间:2019-02-11 16:02:57

标签: java spring rest get

我想将URL放入GET Request中,以便随后可以将用户重定向到给定的URL。

到目前为止,这是我的代码:

@RequestMapping(value = { "/mapping/{param1}/{redirectLink}" }, method = { RequestMethod.GET})
public void mapping(HttpServletResponse response, @PathVariable("param1") String param1, @PathVariable("redirectLink") String redirectLink) throws IOException {
    // code i wanna run
    response.sendRedirect(backLink);
}

我用于GET的示例网址-http://localhost:8080/app/controller/redirectionTest/1234/http://localhost:3000/main

因此,当我调用GET方法时,我想运行一些代码,然后将其重定向到http://localhost:3000/main,但是URL中带有斜杠,因此它不可能。

2 个答案:

答案 0 :(得分:2)

用标准代码%2F代替斜杠。

http://localhost:8080/app/controller/redirectionTest/1234/http%3A%2F%2Flocalhost%3A3000%2Fmain

为了防止您也遇到冒号问题,我用%3A替换了冒号

答案 1 :(得分:0)

您可以尝试

@RequestMapping(value = { "/mapping/{param1}" }, method = { RequestMethod.GET})
public void mapping(HttpServletResponse response, @PathVariable("param1") String param1, @RequestParam(required = true, value = "redirectLink") String redirectLink) throws IOException {
    // code i wanna run
    response.sendRedirect(redirectLink);
}

现在,访问http://localhost:8080/app/controller/redirectionTest/1234?redirectLink=http://localhost:3000/main