我正在尝试设置一个javax
验证来比较两个日期。一个日期应该比另一个日期短。
此外,我为我的两个约会都创建了一个自定义约束。但问题是,我的注释接口无法处理非原始数据类型。
这是我的代码:(我知道这是错误的,但如果我展示我的源代码,也许你可以理解我的问题)
豆子:
@DateValidator(firstDate="assignmentStart", secondDate="assignmentEnd")
public class ProjectAssignment implements IsSerializable {
private String id;
private Project project;
private String projectResponsibility;
private Date assignmentStart;
private Date assignmentEnd;
}
注释界面:
@Target({ TYPE, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = DateValidatorImpl.class)
public @interface DateValidator {
String firstDate();
String secondDate();
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
所以这里有一个问题:我试图将日期
类型放入字符串
类型。但是,如果我将我的第一个日期
和第二个日期
声明为日期
,则存在一个问题:
Invalid type Date for the annotation attribute `DateValidator.firstDate;
only primitive type, `String`, `Class`, annotation, enumeration are permitted
or 1-dimensional arrays thereof
还有其他方法来比较两次约会吗?
我错过了什么?
由于Java注释不能接受Date
字段,因此需要使用String
class。
您可以使用日期格式
将日期
转换为字符串
,然后使用相同的日期格式
将其转换回。
但是,这意味着ProjectAssignment
中的赋值字段必须是String
类型。
(仅在测试中使用)我有依赖项(没有spring或DI容器) 我可以通过 myDto在哪里 哪里 哪里 在这个验证器中,所有的工作都很完美,但没有任何注释或在现场发挥作用,他们只是被忽略了 请帮忙。断然的 很抱歉,我的真实案例是相互嵌套的DTO,所以只有高级类经过验证,但没有嵌套。 而另一个有注释的字段未经验证。当我在字段中添加时,它开始正常工作
我使用的是Swagger(1.5.8),我想让我的定义检测DTO上的JSR-303注释,这样我就可以记录API的验证约束。 我希望注释(如本例)会显示关于最小值(44)的一些信息,但它不会。 由此产生的是: Swagger已经关闭了该功能的拉取请求,但我不清楚它在Swagger定义中的位置/方式。 我希望能够做这样的事情: 配置Swagger模块/插件以启用和等功能的首选方法是什么,以便他们检查我
我有以下验证器,用于验证更新请求。 object.getIdCreditor()有一个值,但是findById方法的执行["CreditorRepository.findById(object.getIdCreditor())" ] 进入NullPointer异常 我不明白怎么了。
我无法在我的Spring Boot应用程序中获得诸如@Not空、@NotBlank和@NotNull之类的注释。 我遵循了这个(maven)示例: https://spring.io/guides/gs/validating-form-input/ ...我不明白我做错了什么。 波乔: Spring控制器: 屏幕: 除了@NotBlank之外,我还尝试了@Not空和@NotNull,但发生了同样的
我一直在尝试单元测试(不运行Spring容器)我的自定义约束注释,但当我运行测试时,会抛出NullPointerException,我不知道为什么会发生这种情况。 NullPointerException指出Validator类中的。 我一直在关注这个答案https://stackoverflow.com/a/41671471/9377513当我写测试的时候。但我不知道为什么这种方法在我的情况下不
问题内容: 有人可以建议一种使用JavaScript 比较 两个 大于,小于和过去的 日期 的值的方法吗?这些值将来自文本框。 问题答案: 该Date对象会做你想要的东西- 构造一个每个日期,然后用它们进行比较,,或。 在,,,和运营商要求使用作为 要清楚的是,仅直接检查日期对象是否相等将不起作用 我建议您使用下拉列表或日期输入的某些类似约束形式,而不要使用文本框,以免您陷入输入验证的困境。