如何打包和使用自定义taglib(maven jar项目)

我创建了自己的taglib。 我把tld文件int src / main / resources / META-IN / InputTagDescriptor.tld(使用maven项目)

<?xml version="1.0" encoding="UTF-8"?>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>input</shortname>
<info>provides an input tag with escaped value attribute</info>
<uri>http://blubber.com/</uri>
<tag>
    <name>input</name>
    <tagclass>com.vector.extranet.taglib.InputTagHandler</tagclass>
    <info>Creates normal input tag but value will be escaped.</info>
    <attribute>
        <name>name</name>
        <required>true</required>
    </attribute>
    <attribute>
        <name>id</name>
        <required>true</required>
    </attribute>
    <attribute>
        <name>cssClass</name>
        <required>false</required>
    </attribute>
    <attribute>
        <name>maxlength</name>
        <required>false</required>
    </attribute>
    <attribute>
        <name>type</name>
        <required>true</required>
    </attribute>
    <attribute>
        <name>value</name>
        <required>true</required>
    </attribute>
</tag>
</taglib>

在我的Web应用程序(liferay portlet,mavenized)中,我包含了导入tld的taglib在jsp中的依赖关系:

<%@ taglib uri="http://blubber.com/InputTagDescriptor.tld" prefix="input" %>

战争应该如此打包:WEB-INF lib taglib.jar META-INF InputTagDescriptor.tld。 但是在调用portlet时,我得到了:

12:56:53,486 ERROR [http-bio-8080-exec-12][render_portlet_jsp:157]     org.apache.jasper.JasperException: The absolute uri:
http://blubber.com/InputTagDescriptor.tld cannot be resolved in either web.xml or the jar files deployed with this application

所以如何让它工作? (它不应该在web.xml帮助下工作吗?)


有点太晚了,但你可以做得很好。 看看这个例子:http://www.codeyouneed.com/how-to-create-a-taglib-with-jsps-for-liferay/

只要确保你的taglib jar是portlet项目的依赖项,所以它很好地包装在一起。 另外,请尝试重新启动liferay,因为它在开始时我觉得有点困难。 另外请注意,您可能无法在Liferay Hook项目中访问您的taglib。

链接地址: http://www.djcxy.com/p/12961.html

上一篇: how to package and use custom taglib (maven jar project)

下一篇: How do JSP custom tag libs from external libraries work?