2013-10-11 77 views
0

我创建了自己的taglib。我把TLD文件INT的src /主/资源/ META-IN/InputTagDescriptor.tld(使用maven项目)如何打包和使用自定义taglib(maven jar项目)

<?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的门户,Maven化),包括我的taglib的依赖性的进口TLD在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帮助下工作吗?)

回答

2

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

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

相关问题