java - 如何检查日期对象的空值

标签 java date jsf-2 richfaces nullpointerexception

我正在使用 JSF 2.0 和 RichFaces 3.3。在我的 View 中,用户将从日历中选择一个日期。使用的标签是 <rich:calendar> .这在支持 bean 中映射为 Date目的。但是,此字段是可选的,因此当用户未选择日期时,此特定条目的支持 bean getter 返回 null , 这是对的。

我的问题是我必须将这个日期存储在数据库中。因此,在存储之前,我以这种方式对其进行类型转换:

if (newProfile.get(Constants.DETAILS_EXPIRY_DATE_1).equals(null)) {
    this.cStmt.setDate(15,null);
} else {
    java.sql.Date sqlDate = new java.sql.Date(((java.util.Date)newProfile.get(Constants.DETAILS_EXPIRY_DATE_1)).getTime());
    this.cStmt.setDate(15,sqlDate);
}

但是它抛出一个 NullPointerExceptionif健康)状况。我想插入 null用户未选择日期时数据库中的值。我该怎么做?

最佳答案

如果您想在避免 NullPointerException 方面变得更健壮

if (newProfile != null) {
    Object obj = newProfile.get(Constants.DETAILS_EXPIRY_DATE_1);
    if (obj == null) {
        this.cStmt.setDate(15, null);
    } else {
        java.sql.Date sqlDate = new java.sql.Date(((java.util.Date)obj).getTime());
                this.cStmt.setDate(15,sqlDate);

    }
}

关于java - 如何检查日期对象的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397096/

相关文章:

ajax - JSF:执行多种形式的值

java - 命令按钮不在 "enter"上提交,仅在 IE < 9 中按下

java - 没有找到适合 JDBC SQL 服务器的驱动程序

java - 在 Spring Data Redis 和 Spring Data jpa 中重新启动应用程序时,数据库中的数据消失

objective-c - Cocoa/Objc - 日期格式更改

r - 超过 5 年的移动平均线,日期不规则

java - 正则表达式 (?<=[\\S])[\\S]*\\s* 的作用是什么?

java - 串联sql语句插入

java - 如何从年月日中获取日期对象?

java - 如何在 WAR 文件之间在 JSF 页面中导航?