дата привязки к командному объекту в Grails
У меня есть дата (в виде строки). Я хотел бы отобразить это на объект команды. Я немного осмотрелся и не нашел большого ресурса о том, как сделать это отображение в объекте команды на реальную дату.
Если бы я делал это в самом контроллере, я мог бы просто сделать следующее, однако это не позволяет мне легко отобразить свой командный объект.
def endDate = params.date('endDate', 'MM/dd/yyyy')
Для моего командного объекта самое близкое, что я смог получить, это переопределить метод получения и установки для объекта даты. Оба должны быть переопределены, иначе установщик не используется. Это то, что я впервые попробовал (установите строку в дату, но получите дату). Так что это не использует сеттер:
@grails.validation.Validateable
class TaskCreateCommand {
Date startDate
public void setStartDate(String dateStr){
this.start = Date.parse('MM/dd/yyyy', dateStr)
}
}
Это не создает никаких проблем во время выполнения, но бесполезно, потому что я не могу вытащить фактический объект Date.
@grails.validation.Validateable
class TaskCreateCommand {
Date startDate
public void setStartDate(String dateStr){
this.start = Date.parse('MM/dd/yyyy', dateStr)
}
public String getStartDate(){
return start.toString()
}
}