2012-01-10 91 views
3

對於我提交的所有表單,我正在創建要提交的信息的文檔播放框架驗證匹配字段

例如, 公共靜態無效formAction(@Valid FormDocument formDocument){ ... }

我喜歡這個,因爲它使我的控制器看着整齊,使得它更容易看到正在請求的形式是什麼。

我的登記文件的外觀(修剪)是這樣的:

@Email 
@Required 
public String email; 
@Required 
public String password; 
@Required 
public String confirmPassword; 

我的問題是有沒有辦法,我可以檢查密碼confirmPassword場比賽該類本身。目前,我正在檢查控制器,並在驗證消息傳回失敗時返回。我認爲如果它是在文件本身內完成的話,它會更整潔。

感謝您的任何反饋意見/提前!

+0

可能重複[使用Hibernate的驗證(JSR 303)跨字段驗證(HTTP:/ /stackoverflow.com/questions/1972933/cross-field-validation-with-hibernate-validator-jsr-303) – axtavt 2012-01-10 16:02:33

回答

8

Play documentation,他們有你的確切用例。

的Equals

檢查該值等於另一個參數的值,使用該值 的equals方法,例如用於檢查密碼確認 字段。

註釋語法:

@Equals("passwordConfirmation") String password

所以,你會需要的是

@Email 
@Required 
public String email; 
@Equals("confirmPassword") 
public String password; 
@Required 
public String confirmPassword; 
+0

謝謝,非常感謝,我從來沒有注意到那個! – Boombastech 2012-01-10 19:31:48

+0

@Codemwnci你知道我在scala中如何做到這一點? – SKK 2016-06-04 05:49:08

+1

@karthi閱讀這個https://www.playframework.com/documentation/2.5.x/ScalaForms,它顯示瞭如何創建一個表單,設置約束然後驗證它,這與Play 1非常不同(我假設你說scala你的意思是玩2),但它都在那裏。 – Codemwnci 2016-06-04 09:10:54