我正在通过返回包含URL的String从Spring MVC控制器进行重定向:

return "redirect:/my/form/newpage.html?pid=".concat(myform.getId().toString());


这给出了这样的字符串:

redirect:/my/form/newpage.html?pid=456


问题是,Spring ModelFactory类将我们所有的会话属性附加到查询字符串中,这看起来很可怕。我真的很想将此重定向从GET更改为POST,但是我不知道该怎么做。有人可以帮忙吗?

最佳答案

您不能真正更改HTTP重定向方法,但是

您可以尝试这样做以避免将变量暴露给path(而是将这些变量显式添加为pid):

public ModelAndView redirectToSomewhere() {
    RedirectView redirectView = new RedirectView("/my/form/newpage.html?pid=".concat(myform.getId().toString());
    redirectView.setExposeModelAttributes(false); // these
    redirectView.setExposePathVariables(false); //two depend on the way you set your variables
    return new ModelAndView(redirectView);
}

10-02 00:34