当我尝试使用grails datepicker时,当我尝试页面时,发送到 Controller 的值是默认值,而不是我在datepicker字段中选择的实际日期值。

我在简单的index.gsp页面中使用grails datepicker:
<g:form action="show"> game ID: <g:textField name="gameId" value=""/><br/> switch date: <g:datePicker name="switchDate" value="${new Date()}"/><br/> <g:submitButton name="submit" value="submit"/></g:form>
我同样简单的显示 Controller :
def show(long gameId, Date switchDate) { println("gameId:$gameId switchDate:$switchDate")}
我猜我缺少明显的东西。先感谢您。

最佳答案

我认为这与Date未正确绑定(bind)有关。如果通过params.switchDate访问它或将参数更改为String类型:

def show(long gameId, String switchDate) {

然后就可以了。

或者,您可以按照this question的步骤为Date设置适当的数据绑定(bind),即通过设置:
grails.databinding.dateFormats = ['MMddyyyy HH:mm:ss']

在您的Config.groovy中。

10-06 01:22