Дата свойства должна быть допустимой ошибкой даты при использовании плагина пользовательского интерфейса jquery
У меня есть tasks
класс, который имеет date
поле. В моем файле просмотра у меня есть эта строка кода:
<g:textField name="date" value="${tasksInstance?.date}" id="datePicker" />
И используя плагин jquery UI, я добавил этот код в свой <head>
тег:
<g:javascript>
$(document).ready(function()
{
$("#datePicker").datepicker({dateFormat: 'mm/dd/yy'});
})
</g:javascript>
Но когда я спасаю date
поле, я получаю следующую ошибку:
Property date must be a valid Date error
Редактировать:
Tasks.groovy
package mnm.schedule
class Tasks {
static belongsTo = [ user : User, project: Project ]
String reason
boolean completed
String title
String description
Date date
static constraints = {
user(nullable:false)
completed(nullable:true)
title(nullable:false)
description(size:1..500,nullable:false)
reason(nullable:true)
}
String toString(){
this.title
}
}
И код действия контроллера:
def save() {
def adminProject = params.managersProject
def foundProject = Project.findByNameLike("$adminProject")
def tasksInstance = new Tasks(params)
foundProject.addToTasks(tasksInstance)
if (!tasksInstance.save(flush: true)) {
render(view: "create", model: [tasksInstance: tasksInstance])
return
}
redirect(action: "show", id: tasksInstance.id)
}
Как оправиться от этого?
2 ответа
Решение
Я полагаю, вы получаете строку как '02/16/2012'
? Вы можете просто позвонить:
params.date = Date.parse( 'MM/dd/yyyy', params.date )
Перед созданием объекта Task...
Вероятно, в Grails есть автоматический способ сделать это, используя PropertyEditorSupport
редактировать
Также в Grails 2.0 вы можете сделать:
def date = params.date( 'myVar', 'MM/dd/yyyy' )
Для парсинга даты param из объекта params
Кажется, этот формат не поддерживается с форматом даты изменения jquery