Spring自动将模型参数添加到url

时间:2014-10-03 08:01:28

标签: java spring

当我在方法中使用return redirect时,spring会自动将我的模型变量(例如get params)添加到url中。 我在这里找到了解决方案Spring MVC Controller: Redirect without parameters being added to my url

但不幸的是它不适用于spring 3.2

我也发现了以下

  

升级到spring-mvc-4.0.xsd时,应该替换   enableMatrixVariables和ignoreDefaultModelOnRedirect with   enable-matrix-variables和ignore-default-model-on-redirect   分别

但是当我将其添加到我的mvc-dispatcher.xml时,我的IDE说这里不允许使用该属性。

Spring 3.2的任何解决方案

3 个答案:

答案 0 :(得分:3)

如果您使用的是java配置,请在WebMvcConfigurerAdapter子类中添加以下内容:

@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

@PostConstruct
public void init() {
    requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);
}

答案 1 :(得分:1)

您可以在重定向之前清除模型:

@RequestMapping(...)
public String doSomething(Model model, ...)
{
    // ....
    model.asMap().clear();
    return "redirect:list";
}

您可以在此处查看其他解决方案:

Spring 3.0 MVC :Redirect without parameters being added to my url

答案 2 :(得分:0)

这对我有用。如果希望将模型数据附加到url参数,请使用此选项。

@RequestMapping("save/")
public View doSave(...)
{
    ...
    RedirectView redirect = new RedirectView("/success");
    redirect.setExposeModelAttributes(false);
    return redirect;
}

感谢reallynic's comment