2011-12-12 137 views
0

我想在我的Command Object for Spring中使用這種類型的東西。彈簧驗證

@NotBlank 
private String carrier; 

@NotBlank(applyIf = "this.carrier EQUALS 'GlobalCrossing'") 
    private String port; 

請讓我知道,如果這是可能的。現場運營商可以有許多值,如果值是GlobalCrossing,則應在端口字段上應用一個非空白檢查。

我可以用彈簧驗證模塊來做到這一點,或者有另外一種方法來實現嗎?

回答

1

由於您的驗證依賴於訂單(,即載體必須設置在端口之前),因此您可能需要執行驗證後初始化。

在Spring中,你可以做任何這些來創建一個初始化的回調方法:

  1. 落實org.springframework.beans.factory.InitializingBean接口。
  2. 用(bean標籤的)init-method屬性聲明一個初始化方法。
  3. 使用default-init-method屬性(bean標記的)屬性爲你的bean聲明一個默認的初始化方法。

但是,您可以執行初始化回調方法中的驗證。 以下是初始化回調的reference的鏈接。