我正在尝试在我的控制器中绑定Date params。我在某处读到,如果我的日期格式为yyyy-MM-dd HH:mm:ss.S
,那就足够了。但这不起作用。我读到的另一个选项是将_day
,_month
,_year
等后缀添加到我要解析的属性中,但此方法也不起作用。
所以它基本上是一对多的关系,如果在很多方面是日期(一个动作有VisitList<Visit>
并且访问有日期)。
// domain classes
class Action {
List<Visit> visitList
static hasMany = [visitList: Visit]
}
class Visit {
Action action
static belongsTo = [action: Action]
Date date
String description
}
我将所有参数解析为动作实例,如下所示:
// in controller
def save(){
Action actionInstance = new Action()
action.properties = params
action.save()
}
日期从视图发送,格式为:
visitList[0].date=2012-05-15 00:00:00.0000
但是日期仍然是空的。该访问还具有描述属性,并且运行良好。该属性的参数是:
visitList[0].description=description
感谢您的任何建议或建议。
答案 0 :(得分:1)
您是否尝试先保存访问,然后保存操作?如果这不起作用,您可能必须将日期从字符串转换为Date,Date.parse()方法在grails 2.0中折旧,请尝试:
Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(dateString)
def action = new Action()
def visit = new Visit(date: date, description: description?:"", action: action)
visit.save()
action.visitList.add(visit)
action.save()
-HTH
答案 1 :(得分:0)
没有看到更多代码,很难说清楚。您可能想尝试Command Object。你的意见来自哪里?一个看法?如果是这样,通常会使用和标记来控制输入。如果您不使用这些,则可能需要使用DateFormat {提示手动解析日期,请使用parse()
方法}。