`
javamail
  • 浏览: 40848 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

Grails为所有的控件器加方法

阅读更多
如要在所有的Controller中使用transport2Map方法
在BootStarp的类如下


import org.codehaus.groovy.grails.commons.GrailsApplication
import org.codehaus.groovy.grails.web.servlet.GrailsApplicationAttributes
import org.springframework.context.ApplicationContext

class BootStrap {

    def init = { servletContext ->

        ApplicationContext applicationContext = servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT)
        GrailsApplication  application = (GrailsApplication) applicationContext.getBean("grailsApplication")

        addDynamicMethods(applicationContext, application)

    }

    def destroy = {
    }

    def addDynamicMethods = { ApplicationContext applicationContext, GrailsApplication application ->
        addDynamicControllerMethods(applicationContext, application)
    }

    def addDynamicControllerMethods = { ApplicationContext applicationContext, GrailsApplication application ->
        application.controllerClasses.each { controllerClass ->
            controllerClass.metaClass."transport2Map" = { obj ->            //将页面中数组对像转成Map
                Map split = obj?.inject([:]) { map, param ->                //页面参数的格式如:user.1-name
                    List list = param.key.split('-')
                    if (list.size() != 2) { // only allow for 1 '-' in a param
                        return map
                    }
                    String firstKey = list.first()
                    String lastKey = list.last()
                    if (!map.get(firstKey)) {
                        map."$firstKey" = [:] // init map for this key
                    }
                    map."$firstKey"."$lastKey" = param.value
                    return map
                }
            }
        }
    }
}
分享到:
评论

相关推荐

    Grails 的过滤器(Grails Filters)

    过滤器是 Grails 中的一种特殊类型的方法,它们可以附加到特定的控制器或全局范围内,会在控制器动作执行前后自动调用。过滤器提供了统一的入口点,可以在不修改每个控制器动作代码的情况下,实现对请求处理流程的...

    Groovy和Grails配置方法

    ### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的...

    Grails Grails Grails

    总结来说,Grails 是一个强大的Web开发框架,借助Groovy的灵活性和Java生态的稳定性,为开发者提供了高效的开发环境。无论是初学者还是经验丰富的开发者,都能从Grails的简洁设计和强大功能中受益。通过深入学习...

    Grails入门精通及中文API

    它详细介绍了Grails框架的所有类、方法和属性,以及它们的用途和用法。通过中文API,开发者可以更轻松地理解框架的工作原理,查找和解决问题,避免因语言障碍而产生的误解。 **4. 学习路径和资源** 要入门Grails,...

    Grails权威指南 Grails权威指南

    `grails test-app`命令即可运行所有相关的测试。 9. **国际化与本地化**:Grails内置了i18n支持,允许开发者轻松处理多语言环境,提高应用的全球适用性。 10. **持续集成与部署**:Grails与常见的CI/CD工具如...

    Eclipse下搭建Grails项目

    - 将Grails命令配置为Eclipse的外部工具,方便直接在IDE中执行Grails命令。在`Run > External Tools > External Tools Configurations...`中创建新的程序配置,详细步骤可参考Eclipse界面的指导。 完成以上步骤后...

    grails-用户手册

    Grails提供了一套强大的命令行工具,用于快速创建项目、生成控制器、领域类、服务等。例如,`grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` 生成领域类。 四、GORM...

    Grails中文参考手册

    "Grails 中文参考手册" 是一套详细的 Grails 学习资料,涵盖了框架的所有核心组件、最佳实践和使用方法,帮助开发者快速掌握 Grails 开发技能。 总之,Grails 是一个强大而灵活的 Web 开发框架,结合 Groovy 的优点...

    grails快速开发web

    - **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中实现 Ajax 功能、处理遗留数据库的方法、利用遗留框架以及如何在 Grails 中使用 WebFlow。 - **高效编程系列**:涵盖使用 ...

    eclipse开发grails插件

    5. **开发与调试**:在Eclipse中,你可以直接编辑Grails的源代码,使用内置的Groovy编辑器进行语法高亮和代码提示。通过右键点击项目,选择"Run As" -> "Grails Command"可以运行Grails的命令,例如"run-app"来启动...

    eclipse插件grails(groovy)

    确保在安装过程中选择所有必要的组件,包括Groovy编译器和Grails支持。 安装完成后,需要配置Groovy和Grails的环境。在Eclipse中,进入"Window" > "Preferences" > "Groovy",在这里设置Groovy SDK。你需要下载...

    Grails入门指南 -- 针对grails1.0.4更新

    - **遗留数据处理**:在已有数据表基础上进行Grails应用开发的方法。 - **ORM问题解决**:针对对象关系映射中遇到的问题提出解决方案。 - **Grails版本升级**:指导如何从旧版本平稳过渡到新版本。 #### 四、...

    the definitive guide to grails 2

    《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...

    grails中文入门简介

    Grails的URL映射系统使得可以灵活地将请求映射到控制器、视图和操作。而WebFlow则提供了一种高级的Web导航流程。 验证是Web开发中不可或缺的一部分,Grails通过声明约束和验证约束来实现。它支持客户端验证,使得...

    grails ajax

    在Grails中,Ajax不仅可以与控制器进行通信,获取或发送数据,还可以与服务层、领域模型等进行交互,实现复杂业务逻辑。Grails的响应式Controller特性使得返回Ajax响应变得更加简单,可以直接返回JSON或XML格式的...

    Grails1.1中文文档

    3. **领域驱动设计(Domain-Driven Design, DDD)**:Grails的域类直接映射到数据库表,文档会解释如何定义领域类、关联关系,以及Lifecycle方法,如`beforeInsert`、`beforeUpdate`等。 4. **服务层**:Grails的...

    grails-2.4.4.zip

    Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4版本,使得开发者可以直接将其集成...

Global site tag (gtag.js) - Google Analytics