Grails4使用<f:all>标签时如何将日期字段替换为Datepicker选择器
Grails 4 Fields插件日期字段替换为Datepicker解决方案
- 第一步:全局替换所有日期字段渲染逻辑(可选,若仅需修改单个字段看第二步)
手动创建目录grails-app/views/_fields/date/,在目录下新建_widget.gsp文件,覆盖Fields插件默认的日期字段渲染规则,文件内容示例如下(以Bootstrap Datepicker为例):
提前在项目公共布局文件(一般为<input type="text" name="${property}" id="${property}" value="${value != null ? formatDate(date:value, format:'yyyy-MM-dd') : ''}" class="datepicker form-control"/> <script> $(function(){ $('.datepicker').datepicker({ format: 'yyyy-mm-dd', autoclose: true, language: 'zh-CN' }); }); </script>grails-app/views/layouts/main.gsp)中引入Datepicker对应的CSS和JS资源即可。 - 第二步:仅替换Book领域类指定日期字段的渲染逻辑
如果不需要修改全局所有日期字段,只需要修改Book类的对应日期字段,可创建目录grails-app/views/_fields/book/[你的日期字段名]/,将上述_widget.gsp文件放在该目录下即可,[你的日期字段名]替换为Book领域类中实际的日期属性名(如publishDate)。 - 第三步:配置日期数据绑定规则
表单提交时会出现日期格式不识别的问题,可在application.yml中添加全局日期绑定配置:
配置完成后重启应用即可生效,打开Book编辑页即可看到原三个下拉选择框已替换为Datepicker日期选择器。grails: databind: dateFormats: - yyyy-MM-dd - yyyy-MM-dd HH:mm:ss
若你使用的是其他Datepicker组件,只需要修改
_widget.gsp中的HTML结构和JS初始化逻辑即可,Fields插件的自定义模板规则通用。
内容的提问来源于stack exchange,提问作者tom6502
相关产品推荐
相关产品推荐

