2010-09-23 49 views
2

使用Spring 3春試圖綁定所有領域

我有兩種形式:增加項目和無效項目 我有ItemAddEditCommand引用項目和其他一些數據。

添加項目效果很好,但我有無效項目的問題。通常它是一個包含兩個表單域的編輯表單 - expirationDate和comment。

在控制器中,我對兩個操作都使用相同的命令。不幸的是,當我無效時,Spring嘗試綁定所有字段。當開始無效時,我使用Item實例填充ItemCommand,其中包含所有可能的字段填充(包括id)

當用戶插入expireDate並評論並提交表單時,除expiresDate和comment之外的所有其他字段爲空。

是否有另一種方式,除了創建另一個命令

回答

3

我想我找到了它。

@InitBinder(value = { INVALIDATE_ITEM_PARAM }) 
protected void initInvalidateItemBinder(WebDataBinder binder) { 
    DefaultBindInitializer.initBinder(binder); 
    binder.setAllowedFields("expireDate", "comment"); 
    binder.setValidator(validator); 
} 

Btw。也許任何人都可以給我指針如何擺脫DefaultBindInitializer.initBinder(binder);初始化一些應該始終使用的財產編輯器。也許有些bean會默認它,所以我不必一直調用這個方法。

+1

您可以在'AnnotationMethodHandlerAdapter'中設置'WebBindingInitializer',參見Petclinic:https://src.springframework.org/svn/spring-samples/petclinic/trunk/ – axtavt 2010-09-23 10:32:41