假設我有一個允許說10個屬性的bean。 另外我有一個錯誤,它有三個屬性,即, errorFlag,errCd和errMsg 我想驗證bean屬性是否有序,並且我想打破錯誤的第一次出現並填充錯誤對象。我如何做到這一點,我想擁有最低限度的If。否則如果語句。驗證bean的最佳方法
ErrorObj豆
public class ErrObj{
private String errorMessage;
private String errorCode;
private boolean errorFlag;
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public boolean isErrorFlag() {
return errorFlag;
}
public void setErrorFlag(boolean errorFlag) {
this.errorFlag = errorFlag;
}
}
下面是一個使用自定義的Util類的一些靜態方法,返回根據字段是否有效或無效的布爾我在哪裏驗證豆 假設類,即時通訊。
public class ValidateMyBean{
ErrObj errObj = new ErrObj();
if(!CustomUtils.isValid(myBean.getProp1))
{
// set some error conditions
errObj.errorCode("123");
errobj.setErrorMessage("validation 1 Failed");
}
else if(!CustomUtils.isValid(myBean.getProp2))
{
}
..........so on
}
所以,如果我的bean擁有10個物業,我必須確認每個屬性對可以說3驗證方法,我不想寫多個「如果 - elseif的」陳述或複式寫「如果「語句在每個if語句結尾處有return語句,以防出現任何錯誤。 有任何清潔方式或有一些框架可以幫助我達到預期的效果嗎? PS:這個Java應用程序使用Spring Core框架,是一個web服務應用程序,而不是一個MVC應用程序。
這不是一個MVC應用程序。第一個鏈接是否適用? –
JSR是一個驗證標準。 MVC與否,jsr-303的實現是進行驗證的標準方法。例如,hibernate在另一個邊界使用符合jsr-303(或如此)的驗證:http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-specifics.html#validator- customoptions-methodvalidation。所以是的,第一個鏈接適用。它只是一個在預定邊界上的通用bean驗證機制,在示例情況下,它在控制器綁定中,但它可以是任意的。如果你願意的話,你也可以隨時用自定義代碼編寫類似的東西 –
我確實推薦了bean驗證規範,但是想要補充說明它們已經達到了1.1版本:http://beanvalidation.org/1.1/ – nablex