我想知道,我会忽视的东西或不休眠验证器提供无注释,以验证2个字段是相等的(如密码)。 我知道我可以写我自己的验证,但也这似乎是标准功能。

有帮助吗?

解决方案 3

刚走到了自定义的验证路径。这里的其他2个回答并没有真正涉及到的问题。 与位使用Google的我发现了一个fieldmatch例子。

其他提示

如果你使用Spring框架,那么你可以使用了Spring表达式语言(规划环境地政司)。 [我已写了小库,它提供基于规划环境地政司JSR-303的验证,使跨字段验证非常容易。看看 https://github.com/jirutka/validator-spring

这将验证密码字段的平等当它们中的至少一个不是空的。

@SpELAssert(value = "password.equals(passwordVerify)",
            applyIf = "password || passwordVerify",
            message = "{validator.passwords_not_same}")
public class User {

    private String password;
    private String passwordVerify;
}

一个布局很好的例子,地址的类似的问题,即,跨字段验证:

与Hibernate验证(JSR 303)跨字段验证

Hibernate是一个ORM映射器。

它用于数据持续到一个DB,并再次将其解压缩。这样,具有相同的值2场使得没有太大意义(从一个持久性点)。那你应该检查你的业务逻辑。

和我与Junesh ...不要坚持你的密码保存在一个检索的格式...查一查Hasing和盐 - 甚至更好,想OpenID的,所以你不要有另一种愚蠢的密码来打扰你的客户..

我希望你是不是在数据库中保存的确认密码。您没有任何的开箱验证这个的,而是你将不得不使用定制的注释,这是非常简单的为好。

scroll top