gpt4 book ai didi

java - 跨域验证 (JSR 303) 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:48 24 4
gpt4 key购买 nike

我有一个简单的 bean,即:

public class MyBean {

private boolean selected;

private String someString;

...
}

因此,如果 selected 为真,我希望 someString@NotNull 等。

任何提示,链接如何实现这种行为?

谢谢强尼

最佳答案

如果您使用的是 Spring 框架,那么您可以为此使用 Spring 表达式语言 (SpEL)。我写了一个小型库,它提供基于 SpEL 的 JSR-303 validator ,使跨领域验证变得非常容易。看看https://github.com/jirutka/validator-spring .

你的案例有一个例子:

@SpELAssert(value = "someString != null", applyIf = "selected",
message = "{validator.missing_some_string}")
public class MyBean {

private boolean selected;

private String someString;

...
}

其实这也太简单了。尝试一些更有趣的东西,也许当其中一个不为空时密码字段相等。

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

private String password;
private String passwordVerify;
}

您甚至可以在这些表达式中使用您自己的“辅助方法”!

与 Hibernate Validator 的 @ScriptAssert 注解相比,这是纯 Java 解决方案,它没有使用任何 JSR-223 兼容的脚本语言,这可能会有点问题。另一方面,此解决方案仅对基于 Spring 的应用程序有意义。

关于java - 跨域验证 (JSR 303) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com