2012-01-10 75 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