`
lijunaccp
  • 浏览: 160583 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

创建自定义标签

阅读更多
既然Grails已经提供了大量<g:>标签,那么你也应该不会对可以创建自已怕标签感惊讶。可能让你感到意外的是创建它非常容易。
1.创建自定义标签
命令行输入grails create-tag-lib Footer,它会在grails-app/taglib目录下创建一个FooterTagLib.groovy空模板,它也会创建相应的测试类。
class FooterTagLib {
	def thisYear={
		out<<new Date().format('yyyy')
	}
}

这就是创建一个新的<g:thisYear/>标签的全部工作,仅仅只是把当前年份传给它,Date上的format()方法与java.text.SimpleDateFormat中找到的那个方法是同一个方法。Groovy利用元编程(metaprogram)把这个方法加到了java.util.Date上以方便使用,这跟GORM利用元编程把list(),save()和delete()加到你的领域类上的做法很像。
2.使用自定义标签
<g:thisYear></g:thisYear>

3.如果想创建一个复杂的自定义标签,如希望这个版权的结束日期是根据当前年份改变,则可这样定义
class FooterTagLib {
	def copyright={
		attrs,body->
		out<<"&copy;"+attrs.startYear+"-"
		out<<thisYear()+" "+body()
	}
}

闭包声明两个参数attrs,body。attrs属性是一个HashMap,attrs让你可以访问<g:copyright>标签的startYear参数。另一方面,body标签是作为闭包传入的,你需要像方法一样去调用它。
分享到:
评论

相关推荐

    利用TagSupport创建自定义标签实现网页左侧菜单

    本文将详细讲解如何利用TagSupport创建自定义标签来实现网页左侧菜单的功能。 1. **理解TagSupport**: TagSupport是javax.servlet.jsp.tagext包下的一个抽象类,它是所有自定义标签的基础。通过继承这个类,我们...

    mybatis自定义标签.zip

    首先,创建自定义标签需要以下几个步骤: 1. **定义标签处理类**:这是自定义标签的核心部分,你需要创建一个实现了`org.apache.ibatis.scripting.xmltags.XMLTag`接口的类。这个类将负责解析XML中的自定义标签,并...

    创建JSP自定义标签.doc

    创建自定义标签的步骤如下: 1. **编写Java类并继承基类**: - 继承`TagSupport`或`BodyTagSupport`。 - 提供属性的`set`方法,这些方法使得在JSP页面上可以设置标签的属性。例如,如果你有一个`value`属性,你...

    tp自定义标签

    2. **创建自定义标签** 在ThinkPHP 3.0中,自定义标签通常在`TagLib`类库下创建。首先,你需要在`ThinkPHP/Lib/TagLib`目录下创建一个新的PHP文件,例如`XyTagLib.php`,然后在这个文件中定义一个继承自`Think\...

    jsp 自定义标签实例

    创建自定义标签通常涉及以下步骤: 1. **定义标签库描述符文件 (TLD, Tag Library Descriptor)**:TLD是XML格式的文件,用于声明自定义标签及其属性。例如,你可以创建一个名为`mytags.tld`的文件,并在其中定义一...

    jsp2.0 自定义标签和自定标签函数

    1. **创建自定义标签** - 定义Tag接口:自定义标签的核心是实现javax.servlet.jsp.tagext.Tag接口,这个接口定义了开始标签(doStartTag())和结束标签(doEndTag())的方法。 - 创建TLD文件:TLD(Tag Library ...

    JSP自定义标签之日期显示

    在“日期显示”这个场景中,我们可能需要创建一个自定义标签,如`&lt;displayDate&gt;`,它接受一个日期对象作为参数,并根据预设的格式将其转换为字符串显示出来。以下是一个简单的实现步骤: 1. 创建TLD文件:在项目的...

    struts实现自定义标签

    在 Struts 中,我们可以通过实现 `org.apache.struts.taglib.Tag` 接口来创建自定义标签。 二、创建自定义标签库 1. 创建 Tag 类:首先,我们需要创建一个 Java 类,该类继承自 `org.apache.struts.taglib.Tag` 或...

    freemark 自定义标签 总结

    创建自定义标签需要两个主要部分:Java类实现和模板定义。Java类通常继承`freemarker.template.TemplateDirectiveModel`接口,并重写`execute`方法。模板定义则是在`.ftl`文件中使用`&lt;#assign...&gt;`创建一个变量,...

    JSP自定义标签学习笔记

    创建自定义标签需要编写处理类,继承自`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext.SimpleTagSupport`,然后在TLD文件中定义标签属性、行为等信息。 三、自结束标签(不带标签体,TagSupport...

    html自定义标签的使用

    首先,创建自定义标签的目的是为了增加语义化,使网页内容更易于机器理解,同时提高人类阅读的清晰度。例如,可以定义`&lt;article&gt;`、`&lt;sidebar&gt;`等标签来明确内容区块的类型。自定义标签遵循驼峰式命名规则,如`...

    自定义标签,标签实例,ppt

    创建自定义标签通常涉及以下几个步骤: 1. 编写TLD文件:TLD文件是XML格式的,用于描述自定义标签的属性、行为和事件。例如: ```xml &lt;name&gt;myTag &lt;tag-class&gt;com.example.MyTagHandler&lt;/tag-class&gt; ...

    Freemarker 自定义标签 简单案例

    创建自定义标签通常需要两个步骤: 1. **编写Java类**:你需要定义一个处理自定义标签的Java类,这个类需要继承`freemarker.template.TemplateDirectiveModel`接口,并实现其方法。在这个类中,你可以编写处理逻辑...

    ckeditor4.0自定义标签操作详细步骤及修改后编辑器jar包下载

    2. **创建自定义标签** 在HTML中定义你的自定义标签。例如,创建一个名为`&lt;myCustomTag&gt;`的标签: ```html 这是我的自定义标签 ``` 3. **样式和行为** 为了让这个自定义标签具有预期的外观和行为,你需要在...

    JSP自定义标签实例与详细讲解

    创建自定义标签库首先需要编写TLD文件,该文件用于描述标签的属性、行为以及与之关联的Java类。TLD文件通常以`.tld`为扩展名,其中包含了标签的元数据,例如标签名称、类路径、属性等。 三、自定义标签的实现 1. ...

    spring mvc freemarker 自定义标签

    要创建自定义标签,你需要编写一个Java类来实现`TemplateDirectiveModel`接口。这个类将定义自定义标签的行为,包括如何处理输入参数、如何生成输出。例如,你可以创建一个名为`HelloWorldDirective`的类,该类包含...

    tag struts2的自定义标签实例

    一、创建自定义标签库 1. 定义标签接口:在Struts2中,我们通常使用`com.opensymphony.xwork2.util.base.TagSupport`作为自定义标签的基础类,它继承了JSP的`javax.servlet.jsp.tagext.TagSupport`,提供了访问上...

    java中自定义标签的使用方法

    **创建自定义标签** 1. **定义标签库(TLD)**:自定义标签库描述文件(TLD, Tag Library Descriptor)是定义自定义标签的地方。TLD文件通常以`.tld`为扩展名,其中包含了标签的元数据,如标签名称、属性、返回类型...

    自定义标签连数据库

    本教程将深入探讨如何创建自定义标签来连接数据库,以便输入数据库名和表名后,就能查看到表的相关信息。 一、自定义标签的结构与工作原理 自定义标签由三部分组成:标签库描述符(TLD)、标签处理类(Tag Handler...

    JAVAEE自定义标签的使用

    创建自定义标签的步骤如下: 1. **定义TLD文件**:TLD文件是自定义标签的核心,它定义了标签的名称、属性、返回类型以及对应的Java类。例如: ```xml xmlns:xsi=...

Global site tag (gtag.js) - Google Analytics