gpt4 book ai didi

Java Jersey 验证

转载 作者:行者123 更新时间:2023-12-01 09:49:37 25 4
gpt4 key购买 nike

我正在 Java Jersey 中使用验证,并且正在构建一个应用程序,应该可以在其中保存某些内容的草稿。但在发布之前,我希望它是有效的,使用 View 模型中的注释。发布时,对于草稿,将调用相同的保存方法。因此我无法在方法中使用注释(methodName(@Valid ViewmodelName))。我可以以某种方式调用一个方法来验证 viewModel 中的注释吗?类似 model->isValid() 之类的东西。或者我可以制作两个 View 模型;一份用于草稿,一份用于发布,但似乎是双重工作。

致以诚挚的问候

最佳答案

所以从你的评论来看,我认为你想要的是手动验证你的带注释的bean。这相当容易。您需要做的是:

  • 创建 validator 实现(我的示例使用 hibernate 验证)
  • 对其调用 validate 并检查结果

我创建了一个小示例来说明:

import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.constraints.NotNull;

public class HibernaterTest {



public static void main(String[] args) {

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

MyModel m = new MyModel();
m.test = null;

Set<ConstraintViolation<MyModel>> validate = validator.validate(m);
System.err.println(validate.size());

m.test = "some string";

validate = validator.validate(m);
System.err.println(validate.size());
}


public static class MyModel {

@NotNull
String test;

}
}

第一个验证调用将打印 1,而第二个验证调用将打印 0。这是因为模型的 test 属性最初为 null。

我希望这能回答您的问题,

阿图尔

关于Java Jersey 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37687231/

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