Java 验证rich:日历时出现的问题

Java 验证rich:日历时出现的问题,java,jsf,calendar,richfaces,Java,Jsf,Calendar,Richfaces,我正在尝试使用验证rich:calendar的非空输入,但无法验证空输入 例如,在我的constraits.xml文件中,我验证了日历的getter: <getter name="dateOfBirth"> <constraint annotation="javax.validation.constraints.Past"/> (works fine) <constraint annotation="javax.validation.constraint

我正在尝试使用验证rich:calendar的非空输入,但无法验证空输入

例如,在我的constraits.xml文件中,我验证了日历的getter:

<getter name="dateOfBirth">

  <constraint annotation="javax.validation.constraints.Past"/> (works fine)

  <constraint annotation="javax.validation.constraints.NotNull" /> (not work)

  <constraint annotation="org.hibernate.validator.constraints.NotEmpty"/> (not work)

</getter>
最后两个约束不起作用,因为DateTime数据类型无法识别它们?据我所知,第一个用于数值,第二个用于字符串

日期时间数据类型有这样的约束吗?我是否可以使用xml文件中为非空输入编写的约束进行验证

如果我使用hibernate validator,我必须在xhtml中使用required=true来进行此类验证:rich:calendar的非空验证

如果你有什么想法请帮我

问候,, Mircea

@NotNull:带注释的元素不能为null。接受任何类型

您是否检查过它是否真的为空?因为它可能已经被设置为新的日期,例如。另外,如果可以使用注释,而不是constraints.xml,则可以尝试使用。这可能是beanvalidator中的错误


无论如何,required=true似乎是一个很好的解决方案。

JSF不验证空字段。然而,JSF2可以选择验证null,以便与bean验证框架兼容。

Hi Bozho,非常感谢您的发布!我尝试使用java类中编写的注释,但NOTNULL验证也不起作用。我也有同样的感觉,当启用rich:calendar时,默认情况下会使用新的日期初始化它,这一事实在GUI中欺骗了非空验证器。可能是一个新日期的自定义验证器,据我所知,它将是当前日期,但并没有在日历的GUI上设置,所以我猜失败可能是另一个解决方案。Regardswell,尝试使用调试器检查,ot System.out日历的值-无论它是真的为null,还是新的日期当我测试时,getters和d setters中的值为null,我对此感到惊讶,因为我希望得到一个非null值。。。