当我在方法中使用return redirect时,spring会自动添加Model变量,比如get params到url。但不幸的是它不适用于Spring3.2我还发现以下当升级到spring-mvc-4.0.xsd时,您应该分别用启用矩阵变量和忽略默认模型重定向替换启用矩阵变量和忽略默认模型重定向。但是当我将其添加到mvc-dispatcher.xml中时,IDE显示此处不允许使用该属性。
return redirect
Spring 3.2有任何解决方案吗?
fcipmucu1#
如果您正在使用java配置,请将以下内容添加到WebMvcConfigurerAdapter子类:
WebMvcConfigurerAdapter
@Autowired private RequestMappingHandlerAdapter requestMappingHandlerAdapter; @PostConstruct public void init() { requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true); }
gmxoilav2#
您可以在重定向之前清除模型:
@RequestMapping(...) public String doSomething(Model model, ...) { // .... model.asMap().clear(); return "redirect:list"; }
您可以在这里看到其他解决方案:Spring 3.0 MVC :Redirect without parameters being added to my url
fjnneemd3#
这对我很有效。如果你不希望你的模型数据被附加到url参数,就使用这个。
@RequestMapping("save/") public View doSave(...) { ... RedirectView redirect = new RedirectView("/success"); redirect.setExposeModelAttributes(false); return redirect; }
感谢reallynic的评论。
3条答案
按热度按时间fcipmucu1#
如果您正在使用java配置,请将以下内容添加到
WebMvcConfigurerAdapter
子类:gmxoilav2#
您可以在重定向之前清除模型:
您可以在这里看到其他解决方案:
Spring 3.0 MVC :Redirect without parameters being added to my url
fjnneemd3#
这对我很有效。如果你不希望你的模型数据被附加到url参数,就使用这个。
感谢reallynic的评论。