(快速參考)

控制器

目的

使用底層 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 和必要的 Spring beans(如下所示)以供控制器、標籤庫和 Groovy Server Pages (GSP) 使用

已設定的 Spring Beans

  • exceptionHandler - GrailsExceptionResolver 的執行個體,用於處理例外狀況

  • multipartResolver - CommonsMultipartResolver 的執行個體,用於處理使用 Apache Commons File Upload 上傳的檔案。如果您不希望使用此功能,請在 application.groovy 中將 grails.disableCommonsMultipart 設定為 true。請注意,停用多部分處理會影響 g:actionSubmit 的行為,因為它需要在 URL 對應階段檢查參數(需要剖析多部分要求)。

  • groovyPageResourceLoader - 僅在 development 模式或設定 grails.gsp.view.dir 時設定。這是 Spring ResourceLoader,它知道如何從任意位置載入 GSP 檢視

  • groovyPagesTemplateEngine - GroovyPagesTemplateEngine 的實例,此類別處理 GSP 檢視的呈現

  • jspViewResolver - GrailsViewResolver 的實例,知道如何解析 GSP 檢視,且具有環境感知

外掛程式也會將每個 Grails 控制器類別設定為原型 Spring bean,以及每個 Grails 標籤庫設定為單例 Spring bean