使用自定义TabLib的时候,我犯了两个错误:
1、Class的类名没有遵从约定:
我首先创建了一个名为“Menu2nd”的TagLib,Grails帮我生成了一个“Menu2ndTagLib”的class;但是我后来又将其Refact->Rename为MenuTag,结果怎么也调用不到该class的tag方法了;
2、使用Body进行输出。《Grails权威指南2nd》上例子为:
class GtunesTagLib {
static namespace = 'gt'
def repeat = { attrs, body ->
attrs.times?.toInteger().times { n ->
body(n)
}
}
}
我试了n遍,页面上就是出不了body的内容。最后发现要重定向输出到out流才行,如下:
class GtunesTagLib {
static namespace = 'gt'
def repeat = { attrs, body ->
attrs.times?.toInteger().times { n ->
out << body(n)
}
}
}
分享到:
相关推荐
本文内容包括:ShortenUrl插件简介创建...如果您需要在多个地方复制和粘贴相同的GroovyServerPages(GSP)代码段,您就可以创建一个部分模板或一个自定义TagLib。如果您发现有一两个方法在多个控制器或域类中很普遍,您
每个插件都有自己的生命周期方法,可以在特定的生命周期阶段执行自定义操作。 四、依赖注入(Dependency Injection) Grails采用Spring框架的依赖注入,使得对象之间的关系在运行时动态决定,增强了代码的可测试性...
Grails提供了一些内置的支持,但如果你需要在自定义的控制器和视图中实现分页,那么就需要遵循特定的步骤。以下是一个详细的过程,帮助初学者理解如何在Grails中实现分页。 首先,让我们从控制器开始。在Grails中,...
- `taglib`:标签库目录,提供自定义HTML标签。 - `views`:视图目录,使用GSP(Groovy Server Pages)编写。 - `scripts`:Gant脚本目录,用于自动化任务。 - `src`:源文件目录,包含Groovy和Java源文件。 - `test...
- `taglib`:自定义页面标签库。 - `views`:视图文件。 - `lib`:第三方jar包。 - `scripts`:脚本文件。 - `src`:Groovy和Java源文件。 - `test`:单元测试文件。 5. **Domain** - 定义属性:例如,`...
- **项目结构**:Grails应用的目录结构清晰,包括`grails-app`下的`conf`、`controllers`、`domain`、`i18n`、`services`、`taglib`、`views`等子目录,以及`lib`、`spring`、`hibernate`、`src`和`web-app`等核心...
9.2.4 对Taglib进行测试 120 9.3 本章小结 121 第10章 部署应用 122 10.1 Grails对部署的支持 122 10.2 配置应用程序 124 10.3 本章小结 127 第三篇 深入了解Grails 第11章 深入GORM 130 11.1 自定义映射 130 ...