【问题标题】:Javax validation Constraints- Compare two DatesJavax 验证约束 - 比较两个日期
【发布时间】:2013-10-21 08:29:13
【问题描述】:

我正在尝试设置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 {};


}

所以这里有一个问题:我尝试将Date 类型放入String 类型。 但是如果我将我的firstDatesecondDate 声明为Date,就会出现问题:

Invalid type Date for the annotation attribute `DateValidator.firstDate; 
only primitive type, `String`, `Class`, annotation, enumeration are permitted 
or 1-dimensional arrays thereof

还有其他方法可以比较 2 个日期吗?

我错过了什么?

【问题讨论】:

    标签: java validation date gwt javabeans


    【解决方案1】:

    由于Java注解不能接受Date字段,你需要使用String类。

    您可以使用DateFormatDate 转换为String,然后使用相同的DateFormat 将其转换回来。

    但是,这意味着ProjectAssignment 中的分配字段必须是String 类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2012-12-03
      • 1970-01-01
      相关资源
      最近更新 更多