(快速参考)

8 特性

版本 6.2.0

8 特性

概述

Grails 提供了许多特性,这些特性提供对属性和行为的访问,这些属性和行为可以从各种 Grails 工件以及作为 Grails 项目一部分的任意 Groovy 类访问。 许多这些特性会自动添加到 Grails 工件类(例如控制器和标签库)中,并且很容易添加到其他类中。

8.1 Grails 提供的特性

Grails 工件在编译时会自动增强某些特性。

拦截器特性

标签库特性

以下是框架提供的其他特性的列表。Javadoc 提供了有关每个特性相关的方法和属性的更多详细信息。

特性 简要描述

grails.web.api.WebAttributes

通用 Web 属性

grails.web.api.ServletAttributes

Servlet API 属性

grails.web.databinding.DataBinder

数据绑定 API

grails.artefact.controller.support.RequestForwarder

请求转发 API

grails.artefact.controller.support.ResponseRedirector

响应重定向 API

grails.artefact.controller.support.ResponseRenderer

响应渲染 API

grails.validation.Validateable

验证 API

8.1.1 WebAttributes 特性示例

WebAttributes 是框架提供的特性之一。任何 Groovy 类都可以实现此特性以继承该特性提供的所有属性和行为。

src/main/groovy/demo/Helper.groovy
package demo

import grails.web.api.WebAttributes

class Helper implements WebAttributes {

    List<String> getControllerNames() {
        // There is no need to pass grailsApplication as an argument
        // or otherwise inject the grailsApplication property.  The
        // WebAttributes trait provides access to grailsApplication.
        grailsApplication.getArtefacts('Controller')*.name
    }
}

这些特性与静态编译兼容……

src/main/groovy/demo/Helper.groovy
package demo

import grails.web.api.WebAttributes
import groovy.transform.CompileStatic

@CompileStatic
class Helper implements WebAttributes {

    List<String> getControllerNames() {
        // There is no need to pass grailsApplication as an argument
        // or otherwise inject the grailsApplication property.  The
        // WebAttributes trait provides access to grailsApplication.
        grailsApplication.getArtefacts('Controller')*.name
    }
}