我在我的一个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的可怕文档(或缺乏文档)也没有太大的帮助。
提前感谢您的帮助!
答案 0 :(得分:7)
taglib URI从以下位置(按顺序)解析:
JSTL and JSF Tag Library
个库。Taglib Map in web.xml
,web.xml可以包含URI和TLD的资源路径的显式映射。TLDs in JAR files in WEB-INF/lib
和TLDs under WEB-INF
TLD's supported by Container
在您的情况下,请检查以下情况:
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>