3

我正在尝试在我的控制器中绑定日期参数。我在某处读到,如果我有格式的日期就足够了 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

感谢您的任何建议或意见。

4

2 回答 2

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

于 2012-05-16T01:23:58.267 回答
0

没有看到更多的代码很难说。您可能想尝试一个Command Object。你的输入来自哪里?一个看法?如果是这样,通常使用标签来控制输入。如果您不使用这些,您可能必须使用DateFormat {提示,使用parse()方法} 手动解析日期。

于 2012-05-15T11:46:21.373 回答