grails - 创建自定义Grails Tag Lib生成代码

标签 grails groovy gsp taglib

是否有任何有关如何创建自定义grails标记的文档,该标记生成类似于“”和“”的常规代码?

使用普通的grails taglib,我能够生成html或原始输出,但是我希望输出的代码可以被解释,类似于if和else标签的工作方式。

以下是“if”标签的Grails源代码示例:

@Override
protected void outputStartTag(String envExpression, String testExpression) {
    out.print("if(");
    out.print(envExpression);
    out.print(" && ");
    out.print(testExpression);
    out.println(") {");
}

我该如何在自己的taglib前缀中做类似的事情。

例:
<mine:doSomethingCool key="foo">This text is conditionally shown</mine:doSomethingCool>

除了隐藏复杂的逻辑之外,我还希望具有此功能,因此可以在自定义标签之后使用标签。

通常,除了当前的taglib格式外,我还希望在工具箱中使用其他工具。

最佳答案

例如,如果您只想在key == 'foo'时呈现条件文本,则可以这样做:

class SomethingTagLib {

    static namespace = "ns"

    def doSomethingCool = { attrs, body ->
        if (attrs.key == 'foo') {
            out << body()
        }
    }
}

然后,您可以像下面这样使用此标记:
<ns:doSomethingCool key="foo">This text is conditionally shown<ns:doSomethingCool>

关于grails - 创建自定义Grails Tag Lib生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38757247/

相关文章:

plugins - 重新安装Grails后出现“ Unresolved 依赖关系”

java - 使用 GoogleDriveApi for android 和 Groovy 时出现奇怪的 ClassCastException 错误

grails - 获取字段的值

javascript - 如何在使用 Grails 3.3.2 的 war 版本中不生成 .gz 文件

testing - 如何将变量插入到SoapUI中Property Transfer的 "Xpath selection"

grails - 检查用户是否在主页上

tomcat - GSP 的 Grails 编码问题

grails - 如何将包中的服务导入Grails中的gsp文件中

grails - 如何将值从 Controller 传递到gsp页面

java - Grails 3.1.2 无法运行错误 org.hibernate.hbm2ddl.schemaupdate - hhh000388