Grails - 使用自定义JSP taglib

时间:2009-09-24 13:39:23

标签: jsp grails

我正在使用grails并希望在项目中使用内部自定义JSP taglib。有谁知道如何做到这一点?我已经看到了让其他jsp taglib工作的参考,但如果你自己编写它们就没有。我在lib文件夹中有一个名为'common-view.jar'的jar文件,并尝试使用此代码来引用它:

<%@ taglib uri="${createLinkTo(dir:'lib',file:'common-view.jar')}" prefix="cas_common" %>

然后在我使用的代码中:

<cas_common:body>${career.jobSections.sectionWorkActivities}</cas_common:body>

我明白了:

org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Could not parse script

非常感谢任何帮助。

马特

1 个答案:

答案 0 :(得分:1)

修改“web-app / WEB-INF / tld / grails.tld”文件并添加指向您班级的必要条目:

<tag>
    <name>includeJs</name>
        <tag-class>com.mycompany.taglib.IncludeJsTag</tag-class>
        <body-content>JSP</body-content>
        <variable>
            <name-given>it</name-given>
            <variable-class>java.lang.Object</variable-class>
            <declare>true</declare>
            <scope>AT_BEGIN</scope>
        </variable>
        <dynamic-attributes>true</dynamic-attributes>
</tag>

common-view.jar放在lib目录中。它应该准备好了!

注意:关于名称空间 - 在GSP中,我认为全局g:名称空间可用于引用上面的标记。

有关更多信息,请查看此页面 - 它有点难以提炼,但如果您已经完成了jsp / servlets,那应该是非常容易理解的。 http://grails.org/Dynamic+Tag+Libraries

编辑:我能够从上面的doco页面中提取更多信息:http://jira.codehaus.org/browse/GRAILS-4571。基本上,您可以将标记声明添加到grails.tld或您自己的(如果您使用grails.tld,您不需要在使用该标记的页面上声明taglib(即<%@ taglib prefix="jct" uri="/WEB-INF/tld/jsp-custom-tags.tld"%>)。确保包含taglib的jar在classspath中。将它放在/ lib /中会很好用。