在 POST 之后重定向到 GET。 Spring Web 应该将下面的“clientId”模型属性添加到我的 URL 中,但事实并非如此......
@Override
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
ClientID clientId = ((MyCommand) command).getClientId();
return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId);
}
如果我只是通过 getSuccessView()
也会出现同样的问题到 ModelAndView 并输入 redirect:<success_view_url>
作为我的配置中的成功 View 。
最佳答案
问题是,默认情况下,RedirectView
仅将其所谓的“简单值类型”转换为 URL。参见RedirectView.isEligibleValue()
。
解决方案是将 ClientId
作为 String
添加到模型中,而不是更自定义的类型:
@Override
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
ClientID clientId = ((MyCommand) command).getClientId();
return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId.toString());
}
注意最后一行的.toString()
。
如果您确实想要的话,您可以覆盖 isEligibleValue()
(在您自己的 RedirectView
子类上),但更容易将您放入其中的所有内容都串起来。
关于java - 为什么 Spring Web/MVC 不将我的模型属性添加到我的重定向 View 的 URL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976807/