Grails - 使用自定义 JSP 标记库

发布于 2024-08-05 11:32:15 字数 566 浏览 1 评论 0原文

我正在使用 grails,并希望在项目中使用内部自定义 JSP 标记库。有谁知道该怎么做?我见过关于让其他 jsp 标记库工作的参考资料,但如果您自己编写它们,则不会。我在 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

非常感谢任何帮助。

马特

I'm using grails and want to use an in-house custom JSP taglib in the project. Does anyone know how to do this? I've seen references to getting other jsp taglibs working but not if you've written them yourself. I have a jar file called 'common-view.jar' in the lib folder and have tried this code to reference it:

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

And then in the code I use:

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

I get:

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

Any help greatly appreciated.

Matt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

找个人就嫁了吧 2024-08-12 11:32:15

修改“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/servlet,那么它应该很容易理解。 http://grails.org/Dynamic+Tag+Libraries

编辑:我能够提取此错误报告比上面的 doco 页面提供更多信息: http://jira.codehaus.org/浏览/GRAILS-4571。本质上,您可以将标记声明添加到 grails.tld 或您自己的标记声明中(如果您使用 grails.tld,则无需在使用该标记的页面上声明标记库(即 <%@ taglib确保包含 taglib 的 jar 位于 /lib/ 中。会很好地工作。

modify the "web-app/WEB-INF/tld/grails.tld" file and add the necessary entries that point to your class:

<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>

put common-view.jar in the lib directory. and it should be ready to go!

NOTE: about the namespace - in GSP, i think the global g: namespace can be used to refer to your tag above.

For more info, check out this page - its a bit hard to distill it, but if you've done jsp/servlets, it should be pretty understandable. http://grails.org/Dynamic+Tag+Libraries

Edit: i was able to extract more info from this bug report than the above doco page : http://jira.codehaus.org/browse/GRAILS-4571 . Essentially, you would add the tag declaration to either grails.tld or your own (if you use grails.tld, you wont need to declare a taglib on the page you are using that tag (i.e., <%@ taglib prefix="jct" uri="/WEB-INF/tld/jsp-custom-tags.tld"%>). Make sure your jar containing the taglib is in the classspath. Putting it in /lib/ will work nicely.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文