[英]JSP Custom Taglib
我在Liferay 7中運行,但是我試圖創建一個自定義標簽,但是在嘗試運行它時始終出現此錯誤。
[fileinstall-/Development/liferay-ce-portal-7.0-ga3/osgi/war][org_apache_felix_fileinstall:103] Error while starting bundle: webbundle:file:/Development/liferay-ce-portal-7.0-ga3/osgi/war/digital-lexicon-portlet-7.0.0.1.war?Bundle-SymbolicName=digital-lexicon-portlet&Web-ContextPath=/digital-lexicon-portlet
org.osgi.framework.BundleException: Could not resolve module: digital-lexicon-portlet [587]_ Unresolved requirement: Import-Package: com.swabunga.spell.engine; resolution:="optional"_ Unresolved requirement: Import-Package: com.swabunga.spell.event; resolution:="optional"_ Unresolved requirement: Import-Package: net.fortuna.ical4j.model; resolution:="optional"_ Unresolved requirement: Import-Package: net.fortuna.ical4j.model.property; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.axis.tools.ant.wsdl; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.bsf; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.poi.hssf.usermodel; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.poi.ss.usermodel; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.portals.bridges.common; resolution:="optional"_ Unresolved requirement: Import-Package: org.apache.portals.bridges.struts; resolution:="optional"_ Unresolved requirement: Require-Capability: osgi.extender; filter:="(&(osgi.extender=jsp.taglib)(uri=/WEB-INF/tld/tile.tld))"_ [Sanitized]
at org.eclipse.osgi.container.Module.start(Module.java:429)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1252)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1224)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361)
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:313)
我遵循了教程,其結構如下所示:
docroot/WEB-INF/src
com.lexicon
- TileTag.java
com.liferay.docs.lexicon.portlet
- LexiconPortlet.java
我的TileTag.java
看起來像這樣:
package com.liferay.docs.lexicon.portlet;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
public class TileTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("Hello Custom Tag!");
}
}
我的docroot/WEB-INF/tld/tile.tld
看起來像這樣:
<?xml version="1.0"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>UI Tile</short-name>
<tag>
<name>tile</name>
<tag-class>com.liferay.docs.lexicon.portlet.TileTag</tag-class>
<body-content>empty</body-content>
</tag>
在我的view.jsp
我有:
<%@ taglib uri="/WEB-INF/tld/tile.tld" prefix="lex" %>
<lex:tile />
我遇到了幾乎完全相同的情況。 我正在將一個JBoss Portal portlet項目移植到Liferay Portal / Wildfly環境中,該項目將生成一個war文件,並且可以完美運行。 當我從JSP文件中刪除<%@ taglib描述符時,BundleException消失了(這表明是問題所在),但是我失去了JSP中的taglib功能,這就是在其中包含它的全部目的。第一名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.