我正在將應用程序從Spring 2.0.7遷移到3.1.1,並且觸發了initBinder的問題。我們曾經有如下方法:@InitBinder在屬性編輯器中使用命令對象...
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
MyCommand command = (MyCommand)binder.getTarget();
binder.registerCustomEditor(CustomerCard.class, createEditorFromCommand(command));
}
其中目標被PropertyEditor使用。這種方法不再叫我做這一個註解控制器,所以我說的@InitBinder
註釋:
@InitBinder
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
MyCommand command = (MyCommand)binder.getTarget();
binder.registerCustomEditor(CustomerCard.class, createEditorFromCommand(command));
}
不幸的是,binder.getTarget()
只是一些默認的對象。對於@InitBinder該文檔還指出,我不能作爲參數得到的命令之一:
這樣的init-binder方法支持所有的論點,即{@link RequestMapping}支持,除了命令/表單對象和 對應的驗證結果對象。
這樣做的正確方法是什麼?
該代碼給出了相同的問題。該命令只是一個「對象」而不是我的註冊命令。 –