java - 为什么 Spring Web/MVC 不将我的模型属性添加到我的重定向 View 的 URL 中?

标签 java url redirect spring-mvc model

在 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/

相关文章:

java - TO_CHAR 函数在 H2 数据库中不可用

java - OpenGL ES 2.0 : From orthogonal to perspective (card flip effect)

javascript - 需要身份验证的链接如何工作?

ruby - 转义 URL(没有双重转义)

ajax - 获取发起 AJAX 调用的页面 URL

python - Django 和 urls.py : How do I HttpResponseRedirect via a named url?

"main"线程的 Java 执行器

java - 扩展多个类的解决方案

asp.net-mvc-3 - mvc3 PRG 模式

redirect - 带有元 http-equiv ="REFRESH"重定向的 Google 分析