(快速参考)

控制器

目的

使用底层的 Spring MVC 组件模型配置核心 Grails MVC 架构的插件

示例

控制器

class BookController {
    def list() {
        [books:Book.list()]
    }
}

标签库

import java.text.SimpleDateFormat

class FormatTagLib {
    def dateFormat = { attrs ->
        out << new SimpleDateFormat(attrs.format).format(attrs.value)
    }
}

说明

此插件配置 Grails 以在其核心使用 Spring MVC 处理 Web 请求。该插件设置了GrailsDispatcherServlet 和控制器、标签库和 Groovy Server 页面 (GSP) 的必需的 Spring Bean(见下文)

配置的 Spring Bean

  • exceptionHandler - GrailsExceptionResolver 的一个实例,用于处理异常

  • multipartResolver - CommonsMultipartResolver 的一个实例,用于使用 Apache Commons File Upload 处理文件上传。如果您不想使用此功能,请在application.groovy 中将 grails.disableCommonsMultipart 设置为 true。请注意,禁用 multipart 处理将影响 g:actionSubmit 的行为,后者需要在 URL 映射阶段检查参数(需要解析 multipart 请求)。

  • groovyPageResourceLoader - 仅在development 模式或设置了grails.gsp.view.dir 时配置。这是一个 Spring ResourceLoader,知道如何从任意位置加载 GSP 视图

  • groovyPagesTemplateEngine - GroovyPagesTemplateEngine 的一个实例,此类处理 GSP 视图的呈现

  • jspViewResolver - GrailsViewResolver 的一个实例,知道如何解析 GSP 视图,并且具有环境感知能力

此插件还将每个 Grails 控制器类配置为 Spring bean 的原型,并将每个 Grails 标签库配置为 Spring bean 的单例