2016-08-05 59 views
1

在控制器的行动日期参数中使用Grails的操作参数日期结合

def action(Date start, Long id){ 
    .... 
} 

数据在默认情况下没有作品日期类型的结合。在当前时间初始化调用启动变量期间,参数值'01/05/2016'。

日期绑定工作,以及与日期开始场域

someDomain.properties = params 
bindData(someDomain, params) 

如何激活它操作的参数?

PS

grails.databinding.dateFormats配置良好

的Grails 2.4.5

更新:

我看到Binding a Grails date from params in a controller,我使用提供溶液ValueConverter自定义绑定,它只适用于域和co mmands binding

+0

您是否尝试使用命令对象而不是这两个参数? –

+0

@Michal_Szulc命令对象它应该工作,但它不适合我 – demon101

+0

可能重复[在控制器中绑定Grails日期从参数](http://stackoverflow.com/questions/2871977/binding-a-grails-日期从控制器中的参数) –

回答

1

如果您希望使用在grails.databinding.dateFormats下配置的格式绑定日期,那么您需要使用命令对象或调用其中一个重载方法params.date('start')

我不知道为什么你很不情愿使用命令对象。你在评论中说过这个解决方案“不适合”,但我很想知道为什么命令对象不适合。

将日期直接绑定到动作参数是一个根本不存在的功能。

+0

'直接绑定日期到动作参数是一个根本不存在的功能。“这很有趣,因为它在Spring中是可能的。也许在Grails 3.x中可能有些东西? – Gregg

+0

@Gregg是的。它可能在春季MVC。我不希望只为日期绑定生成虚拟命令对象 – demon101

+0

@ DnalData('start')是每个变量名的消息属性中的日期格式所必需的。尝试执行params.date('start')并且会得到异常 – demon101