2011-08-08 13 views
1

做POST後重定向到GET。 的Spring Web應添加以下「的clientId」模型屬性到我的網址,但它不是....如果我只是通過getSuccessView()到ModelAndView中,並把redirect:<success_view_url>作爲成功的看法發生爲什麼Spring Web/MVC不能將我的模型屬性添加到我的重定向視圖的URL中?

@Override 
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception { 
    ClientID clientId = ((MyCommand) command).getClientId(); 
    return new ModelAndView(new RedirectView(getSuccessView()), "clientId", clientId); 
} 

同樣的問題在我的配置中。

回答

1

問題是,默認情況下,RedirectView只能將URL稱爲「簡單值類型」。 C.F. 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子類)是你真的想要的,但它更容易toString你放在那裏的一切。

相關問題