我创建了自己的taglib。我把tld文件放在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>
在我的webapp(liferay portlet,mavenized)中,我包含了在jsp中导入tld的taglib的依赖项:
<%@ 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帮助的情况下工作吗?不应该吗?)
答案 0 :(得分:2)
可能有点太晚了,但你可以很好地做到这一点。 看看这个例子:http://www.codeyouneed.com/how-to-create-a-taglib-with-jsps-for-liferay/
确保你的taglib jar是你的portlet项目的依赖项,所以它很好地打包。另外,尝试重新启动liferay,因为我发现它最初有点困难。 另外请注意,您可能无法访问Liferay Hook项目中的taglib。