2011-11-09 47 views
1

是否有一種優雅的方式來驗證來自同一個使用PlayFramework的POJO中的另一個參數的POJO參數?我正在尋找一個解決方案,以保持播放錯誤機制。使用PlayFramework進行復雜的POJO驗證

例:

@Entity 
public class Page extends Model { 

    @Required 
    @Min(0) 
    public Integer minWidth; 

    @Required 
    @Min(0) 
    public Integer maxWidth; 
} 

我需要檢查minWidth < maxWidth。

回答

5

您需要編寫custom validator並使用@CheckWith註釋。

您也可以編寫自定義註釋(文檔與上述相同的頁面),但它更復雜。

+0

我在文檔中閱讀了這個內容,但驗證者或註釋僅適用於一個參數。我如何使用同一個對象的另一個值來檢查它?例如,我無法在註釋參數中傳遞動態值。 – Zofren

+0

Check抽象類中定義的isSatisfied方法(在您編寫自定義驗證程序時擴展)需要兩個參數,即被測對象(在您的情況下爲模型)和測試字段(假設第一個參數爲minWidth) 。在你的方法體內,你將minWidth和model.maxWidth進行比較.. –

+0

好吧,我明白了。感謝您的解決方案! – Zofren