Grails - Controller中的日期绑定

时间:2012-05-15 11:36:08

标签: data-binding grails

我正在尝试在我的控制器中绑定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

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

2 个答案:

答案 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()方法}。