gpt4 book ai didi

java - GET 请求 - 重定向到另一个页面并保留参数

转载 作者:行者123 更新时间:2023-12-01 18:01:00 26 4
gpt4 key购买 nike

我正在使用 Spring MVC 构建一个应用程序,我想重定向到另一个网址,但我想保留参数。

这是我 Controller 中的内容:

@RequestMapping(value = "/users/", method = RequestMethod.GET)
public String redirect(
@RequestParam(value = "name") String name,
@RequestParam(value = "surname") String name,
RedirectAttributes redirectAttributes
) {
redirectAttributes.addFlashAttribute("surname", surname);
return String.format("redirect:/users/name/%s", name);
}

@RequestMapping(value = "/users/name/{name}", method = RequestMethod.GET)
public String view(
@PathVariable("name") String name,
Model model,
@RequestParam(value = "surname") String surname
) {
...
}

例如,当我点击 /users/?name=mark&surname=williams 时,我希望重定向到 users/name/mark?surname=williams

但是,我被重定向但参数消失了。如果我在 Intellij 中设置拦截器,我可以看到它接收到参数,但它们没有显示。

最佳答案

您可以使用 HttpServletResponse.sendRedirect() 实现相同的目的:

@RequestMapping(value = "/users/", method = RequestMethod.GET)
public String redirect(
@RequestParam(value = "name") String name,
@RequestParam(value = "surname") String surname,
HttpServletResponse httpResponse
) throws IOException {
httpResponse.sendRedirect("/CONTEXT-ROOT/users/name/"+ name+"?surname="+surname);
}

@RequestMapping(value = "/users/name/{name}", method = RequestMethod.GET)
@ResponseBody
public String view(
@PathVariable("name") String name,
@RequestParam(value = "surname") String surname
) {
System.out.println("surname="+surname);
return "{\"response\":\"ok\"}";
}

要使重定向:工作,您可能需要添加 UrlBasedViewResolver。

检查这个问题:Redirect from one controller method to another controller method

关于java - GET 请求 - 重定向到另一个页面并保留参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60630105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com