我有這樣一個地址實體:如果實體的所有字段都爲空,如何跳過bean驗證?
@Entity
public class Address implements java.io.Serializable {
@Id @GeneratedValue(strategy = IDENTITY)
private Long id;
@Size(max = 100)
private String street;
@Size(max = 15)
private String nr;
@Field
@Size(min = 1, max = 20) @NotBlank
private String city;
}
這是其他幾個實體的一部分。對於一個這樣的實體,地址是可選的。 我有一個視圖,我們的用戶可以通過幾個表單輸入來編輯整個實體,包括幾個地址字段。
爲了能夠編輯地址,我使用空地址實體初始化父實體。
現在的問題是:當所有地址字段都爲空時,我不想在實體上堅持Address
。爲了達到這個目的,我需要在Address
的所有字段都爲空的情況下跳過驗證。我如何以最優雅的方式做到這一點?
我現在正在做的是完全跳過bean驗證,<o:validateBean disabled="true" />
用於提交按鈕,如果地址爲空,則將地址設置爲null
。但這聽起來像是一個徹頭徹尾的破解,因爲它禁用所有驗證在所有個案。我該如何做得更好?
綁定技巧非常棒,謝謝! – mabi
雖然檢查'param'值工作得很好,但我不得不使用id的字符串值(我控制命名容器和輸入的id),在嘗試時使用'clientId'給了我一個NullPointerException評估EL。這可能是因爲這些值處於有條件呈現的彈出窗口中? – mabi
這是什麼'null'? – BalusC