`
atian25
  • 浏览: 468174 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Grails时间类型自动转换的格式设置(in/out)

阅读更多

1.Domain转换为json简单,直接在BootStrap的init里面添加:

JSON.registerObjectMarshaller(Date) {
    return it?.format("yyyy-MM-dd HH:mm:ss")
}

 

ps:还有一种方法是利用插件,重写Date的toString方法.

参见:http://stackoverflow.com/questions/690370/how-to-return-specific-date-format-as-json-in-grails 

 

 

2.js段提交数据到controller,自动转换为DATE.

 

1)在src/groovy添加:

package utils

import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * 自定义的Date转换器,支持多种format
 */
class CustomDateBinder extends PropertyEditorSupport {
	private final List<String> formats;
	
	public CustomDateBinder(List formats) {
		List<String> formatList = new ArrayList<String>(formats.size());
		for (Object format : formats) {
			formatList.add(format.toString()); // Force String values (eg. for GStrings)
		}
		this.formats = Collections.unmodifiableList(formatList);
	}

	@Override
	public void setAsText(String s) throws IllegalArgumentException {
		if (s != null)
			for (String format : formats) {
				// Need to create the SimpleDateFormat every time, since it's not thead-safe
				SimpleDateFormat df = new SimpleDateFormat(format);
				try {
					setValue(df.parse(s));
					return;
				} catch (ParseException e) {
					// Ignore
				}
			}
	}
}

 

2)添加CustomPropertyEditorRegistrar:

package utils

import grails.util.GrailsConfig;

import java.text.SimpleDateFormat;

import org.springframework.beans.PropertyEditorRegistrar;
import org.springframework.beans.PropertyEditorRegistry;

/**
 * 注册自定义的属性装配器
 * @author TZ
 *
 */
class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {

	@Override
	public void registerCustomEditors(PropertyEditorRegistry registry) { 
		def formats = GrailsConfig.get("grails.date.formats", List.class)?:["yyyy-MM-dd HH:mm:ss","yyyy-MM-dd'T'HH:mm:ss","yyyy-MM-dd"];
		registry.registerCustomEditor(Date.class, new CustomDateBinder(formats)); 
	} 
}
 

3)在conf/spring/resources.groovy中注册:

beans = {
	bean {
		//自定义属性绑定
		customPropertyEditorRegistrar(utils.CustomPropertyEditorRegistrar)
	  }
}
 

4)conf/Config.groovy中添加配置:

grails.date.formats = ["yyyy-MM-dd HH:mm:ss","yyyy-MM-dd'T'HH:mm:ss","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss.SSS ZZZZ", "dd.MM.yyyy HH:mm:ss"];

 

 

 

分享到:
评论

相关推荐

    grails-3.0.5-ga (2/2)

    14. **Grails Profiles**: 3.0.5引入了Profiles概念,为不同类型的项目(如web应用、命令行工具等)提供预设的配置和结构。 15. **热部署**: 开发过程中,Grails支持代码的热部署,修改后的代码无需重启服务器即可...

    grails in action

    《Grails in Action》是一本专注于Grails框架的实战型图书,由Manning出版社于2009年出版,ISBN号为1933988932。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、灵活和强大的特性深受Java开发者喜爱。这...

    Grails Grails Grails

    1. **自动化配置和约定优于配置**:Grails 提供了许多默认配置,例如数据库连接、URL映射等,开发者只需按照约定编写代码即可,减少了配置工作。 2. **GORM(Grails Object Relational Mapping)**: GORM 是Grails...

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    grails快速开发web

    - **自动配置**:Grails 自动处理很多配置细节,如数据源、日志管理等,减少了配置文件的数量和复杂度。 - **集成 Hibernate**:Grails 内置对 Hibernate 的支持,简化了数据库操作。 - **脚手架支持**:提供了一套...

    grails-3.0.5-ga (1/2)

    grails-3.0.5-ga (1/2), file1, for somebody who can not download

    grails login

    Grails的环境配置通常包括设置GRAILS_HOME路径以及将其添加到系统的PATH变量中。 **2. 创建新项目** 使用Grails命令行工具创建一个新的Grails应用,例如`grails create-app loginDemo`。这将在指定目录下生成一个...

    eclipse开发grails插件

    同样地,可以通过Eclipse的"Help" -&gt; "Install New Software",添加Grails插件的更新站点(如:http://dist.springsource.org/snapshot/GRails/studio/eclipse/)并完成安装。 3. **配置Grails环境**:安装插件后,...

    Eclipse下搭建Grails项目

    - 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -&gt; Preferences -&gt; Groovy`中,勾选"Disable Groovy Compiler Generating...

    Grails入门指南中文第二版.pdf

    1. **Grails框架概述**:Grails是如何简化Java Web开发的,其核心特性包括自动化配置、丰富的插件系统和强大的构建工具Gant和Gradle。 2. **Groovy语言基础**:Groovy是Grails的编程语言,它是一种动态、类型安全的...

    grails学习

    要更改 Grails 应用的默认首页,需编辑 `grails-app/conf/UrlMappings.groovy` 文件,将默认路由设置为相应的控制器,如: ```groovy class UrlMappings { static mappings = { "/$controller/$action?/$id?"{ ...

    grails-4.0.4.zip

    9. **RESTful服务**:Grails鼓励使用RESTful风格来构建Web服务,通过简单的注解就能创建API,支持JSON和XML数据格式。 10. **测试支持**:Grails提供了丰富的测试框架,包括单元测试、集成测试和功能测试,帮助...

    grails in action 2009

    《Grails in Action 2009》是针对Groovy和Grails框架的一本详尽教程,适合希望深入了解这两种技术的开发者。Groovy是一种简洁、动态的Java平台上的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,它以简化...

    grails ajax

    描述中的"javascript and ajax using in grails"强调了JavaScript在Grails应用中的重要性。JavaScript是实现Ajax交互的主要语言,通常用于处理用户交互和动态更新页面。Grails提供了与jQuery等流行JavaScript库集成...

    grails-用户手册

    Grails支持多语言环境,通过`messages.properties` 文件实现国际化,可以根据用户浏览器设置自动选择对应的语言版本。 总结来说,《Grails用户手册》涵盖了从项目创建到部署运行的全过程,包括Grails的基础概念、...

Global site tag (gtag.js) - Google Analytics