我有一个 URL 缩短程序,它应该将 Redirect(URL) 发送到用户指定的 URL。
有时 URL 包含大括号,如下所示:http://example.com?someparam={something}
。
我在 Tomcat 服务器上的 Spring MVC 应用程序没有向客户端浏览器发送响应 302,而是给出了没有文本的错误 404。
显然这是在进行某种 URL 变量评估,我可以禁用它吗?我找不到有关此功能的文档。
最佳答案
我知道这是一个老问题,但我认为 OP 正在寻找一种方法来阻止 Spring 在重定向 URL 中进行变量替换
我遇到了完全相同的问题,修复方法是使用 RedirectView 在 RedirectView 中您可以设置 setExpandUriTemplateVariables(false)
这使得它重定向到准确给出的 url,而 Spring 没有尝试替换其中的任何内容
代码如下
RedirectView redirect = new RedirectView(redirectUrl);
redirect.setExpandUriTemplateVariables(false);
return new ModelAndView(redirect);
希望有帮助
关于java - 如何在传递给 HttpServletResponse.sendRedirect 的 URL 中禁用大括号评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35478586/