我是grails的新手。我正在使用joda插件来表示日期和时间。所以我在单独的列中显示日期和时间。现在我想使用条件搜索日期。 我在gsp页面中使用下面的代码来搜索日期。
<tr class="prop">
<td valign="top" class="name">
<label for="createdOn"><g:message code="asset.createdOn.label" default="Created On" /></label>
</td>
<td valign="top" class="value ${hasErrors(bean: assetInstance, field: 'createdOn', 'errors')}">
<joda:datePicker name="createdOn" precision="date" value="${assetInstance?.createdOn}" />
</td>
</tr>
我使用标准在控制器中使用了以下代码。
def search= {
if (request.method == 'POST'){
def criteria = Asset.createCriteria()
def results = criteria {
or {
gt('createdOn','%' + params.createdOn + '%').toDate()
}
}
render(view:'list', model:[ assetInstanceList: results,assetInstanceTotal: Asset.count() ])
}
}
但它显示错误。请指导我解决这个问题。
答案 0 :(得分:1)
您可能希望将搜索绑定到命令,以便拥有实际绑定的Date对象而不是String参数。
class SearchCommand {
LocalDate createdOn
...
}
您还需要修改标准。
def search = { SearchCommand command ->
...
def results = criteria {
or {
gt('createdOn', command.createdOn)
...
}
}