由于无法将域与java.sql.Date一起使用(输入给出属性issueDate类型不匹配,显示内容显示了时间和tz,由于创建/ grails-app / views / _fields / class / propertyName /对于java.sql.Date会产生grails-app / views / _fields / date / propertyName /,但不幸的是,它也会覆盖java.util.Date等的显示。我们一直在尝试获取java.time.Local的有效UI,但遇到了问题。另请参见github ticket
首先,要获取日期选择器,我们尝试将其放入/grails-app/views/_fields/localDate/_widget.gsp:
<g:datePicker name="${propertyName}" precision="day" value="${new Date()}"
noSelection="['':'-Choose-']"/>
但是,在生成的html中,我们看到了:
<label for='issueDate'>Issue Date</label><input type="hidden" name="null" value="date.struct" />
<select name="null_day" id="null_day" aria-labelledby="null">
<option value="" selected="selected">-Choose-</option>
<option value="1">1</option>
<option value="2">2</option>
问题是name =“ null_day”应该是name =“ issueDate_day”,等等,
如果我们的域对象看起来像这样:
类文档{ 用户用户 DocumentType documentType 字符串documentNumber 国家国家问题 字符串发布 java.time.LocalDate issueDate java.time.LocalDate expirationDate }
我们应该看到
<select name="issueDate_day" id="null_day" aria-labelledby="null">
等
如果我们对小部件中的属性名称之一进行硬编码,则它“有效”(但显然这不是解决方案)。例如
<g:datePicker name="issueDate" precision="day" value="${new Date()}"
noSelection="['':'-Choose-']"/>
请注意,该域的控制器只是简单的脚手架,即:
class DocumentController{
static scaffold=Document
}
没有创建任何视图,但是如果没有显式视图,问题将是相同的。
有什么建议吗?