class BookController {
    def list() {
        [books:Book.list()]
    }
}控制器
目的
使用底层的 Spring MVC 组件模型配置核心 Grails MVC 架构的插件
示例
控制器
标签库
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 的单例