2014-02-14 73 views
0

假設我有一個允許說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應用程序。

回答

0

有許多驗證實用程序。您可以檢查這個例子:

Spring MVC: How to perform validation?

還有一個關於它的JSR規範:JSR-303

http://beanvalidation.org/1.0/spec/

使用JSP享受

+0

這不是一個MVC應用程序。第一個鏈接是否適用? –

+0

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驗證機制,在示例情況下,它在控制器綁定中,但它可以是任意的。如果你願意的話,你也可以隨時用自定義代碼編寫類似的東西 –

+0

我確實推薦了bean驗證規範,但是想要補充說明它們已經達到了1.1版本:http://beanvalidation.org/1.1/ – nablex

0

訪問Java組件:

使用JSP寫入一個java bean程序變得更加容易。

useBean操作聲明瞭用於JSP的JavaBean。一旦聲明,這個bean就成爲一個腳本變量,可以被腳本元素和JSP中使用的其他自定義標記訪問。對於useBean標籤的完整的語法如下:

<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/> 

爲scope屬性這裏值可以根據您的需要頁面,請求,會話或應用程序。 id屬性的值可以是任何值,只要它是同一個JSP中其他useBean聲明中的唯一名稱即可。

下面例子說明了其簡單的用法:

<html> 
<head> 
<title>useBean Example</title> 
</head> 
<body> 

<jsp:useBean id="date" class="java.util.Date" /> 
<p>The date/time is <%= date %> 

</body> 
</html> 

這將產生以下結果:

的日期/時間是週四09月30日11點18分11秒GST 2010