gpt4 book ai didi

grails - 命令对象中的 java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-02 15:28:32 27 4
gpt4 key购买 nike

我想在验证命令对象之前解析一个字符串,这是我的命令对象代码

class ActivitiesCommand {
List schools
List departments
Date from
Date to

static constraints = {
schools nullable:false
departments nullable:false
from blank:false
to blank:false
}

def beforeValidate() {
def from = new Date().parse("yyyy-MM-dd", from)
def to = new Date().parse("yyyy-MM-dd", to)
}
}

但我得到 java.lang.NullPointerException当我尝试 def from = new Date().parse("yyyy-MM-dd", from)def to = new Date().parse("yyyy-MM-dd", to) .为了在验证命令对象之前成功解析日期,我该怎么做?

我阅读了命令对象文档。我从那里得到了这个样本。我试过如果删除 ? beforeValidate 不起作用,所以我知道我需要提供一个空保险箱,但我不知道如何在我的场景中做到这一点
class Person {
String name

static constraints = { name size: 5..45 }

def beforeValidate() { name = name?.trim() }
}

谢谢你的时间。

最佳答案

fromto在命令对象中设置为日期,因此请求参数字符串为 fromto名称将被转换为日期,然后绑定(bind)到这些字段。

如果预期的日期格式匹配,则绑定(bind)将成功。

在您的情况下,fromtobeforeValidate被视为 String反而。如果他们是 String实际上,您可以制作它们nullable: false在约束中或在 beforeValidate 中进行如下检查:

from = from ? Date.parse("yyyy-MM-dd", from) : new Date() - 1 //for example

注意 Date.parse()的正确使用

关于grails - 命令对象中的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089585/

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