Liferay Taglib导入不在JSP中工作

时间:2011-11-09 07:29:52

标签: java jsp import liferay taglib

我在我的一个JSP页面中导入liferay标记库时遇到问题,不知道我做错了什么。我在之前的项目中做了同样的事情,但现在由于某种原因它没有工作。

我要导入的代码:

<%@ taglib uri="http://liferay.com/tld.ui" prefix="liferay-ui" %>

我得到的语法错误:

The absolute uri: http://liferay.com/tld.ui cannot be resolved in either web.xml or the jar files deployed with this application

我试图相当广泛地讨论这个问题,但无济于事。对于liferay的可怕文档(或缺乏文档)也没有太大的帮助。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:7)

taglib URI从以下位置(按顺序)解析:

  1. 如果容器符合Java EE平台,则标记库是Java EE平台的一部分。目前包括JSTL and JSF Tag Library个库。
  2. Taglib Map in web.xml,web.xml可以包含URI和TLD的资源路径的显式映射。
  3. TLDs in JAR files in WEB-INF/libTLDs under WEB-INF
  4. TLD's supported by Container
  5. 在您的情况下,请检查以下情况: 1)如果包含在jar/META-INF中的TLD的WEB-INF / lib中存在对liferay实现的jar文件,该TLD将使用http://liferay.com/tld.ui URI定义。 2)如果没有jar文件且jar文件外部存在liferay-ui.tld,请在web.xml中添加URI映射entrey,如下所示:

    <taglib>
        <taglib-uri>http://liferay.com/tld/ui</taglib-uri>
        <taglib-location>/WEB-INF/tld/liferay-ui.tld</taglib-location>
    </taglib>
    

答案 1 :(得分:2)

它不是

<%@ taglib uri="http://liferay.com/tld.ui" prefix="liferay-ui" %>

应该是

<%@ taglib prefix="liferay-ui" uri="http://liferay.com/tld/ui" %>

注意“tld.ui”必须是“tld / ui”。

liferay-ui.tld来自util-taglib.jar,在热部署期间,liferay会添加到您的WEB-INF / lib中。

不需要您的web.xml条目。

答案 2 :(得分:1)

您可能需要在web.xml中包含taglib声明。

    <taglib>
        <taglib-uri>http://liferay.com/tld/ui</taglib-uri>
        <taglib-location>/WEB-INF/tld/liferay-ui.tld</taglib-location>
    </taglib>