on 01-11-2007 11:24 AM
Hi,
i got a little - but nasty problem - with running my j2ee application on our webas server.
the system: WebAS 6.4 SP15 / Java 1.4
i'm using the displaytag (http://displaytag.sourceforge.net) - but the WebAS doesn't like this, as it seems
<b>code (monitor.jsp):</b>
<%@ page language="java"%>
<%@ taglib uri="/WEB-INF/displaytag.tld" prefix="display" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles"
prefix="tiles"%>
<display:table id="parent" name="datenbasis" export="true" sort="list" pagesize="20" requestURI="/doLogin.do">
<display:column title="Warenem." href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="warenempfaengerName" sortable="true" headerClass="sortable"/>
</display:table>
<b>failure:</b>
Can't insert page '/jsp/monitor.jsp' : Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp].
on tomcat everything works fine, so i know, that this must have to do with the tld's / deployment of them etc.
is there any special way to configure the deployment of those tld's somewhere in application-j2ee-engine.xml or anything like that?
i'm thankful for every bit of little help.
thx in advance!
It should works in two ways:
- you have only displaytag jar placed in /WEB-INF/lib directory. In this case you zan use this taglib declaration :
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
- in the secod case, you have placed dysplaytag's TLD file under /WEB-INF/ directory. You should declare a mapping for this loacytin int web.xml file like :
<taglib>
<taglib-uri>http://displaytag.sourceforge.net</taglib-uri>
<taglib-location>/WEB-INF/displaytag.tld</taglib-location>
</taglib>
and the corresponding taglib declaration should be :
<%@ taglib uri="http://displaytag.sourceforge.net" prefix="display" %>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thx again for your help.
I've tried both ways now, but both lead to one result:
#1.5#00112529C81E00540000001600001340000426D7469775D6#1168605951010#/System/Server#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#Guest#2####d56db020a23a11dbbde200112529c81e#SAPEngine_Application_Thread[impl:3]_2##0#0#Error#1#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#Plain###Runtime error in compiling of the JSP file <D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp> !
The error is: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E00540000001500001340000426D74697718E]#
i really don't know why the tags are not recognized?!?
thx again, but this is not possible because the contents have to be kept internal,
i've already postet the tld contents and the code which causes the error.
if i delete this part of code, the application runs fine on the WebAS - but no items are displayed so:
it is definitive a problem within the displaytag
the problem is WebAS specific, because the application runs fine on tomcat
i've tried in both ways (web.xml definition and just in jsp with jar
i've got the jar AND also the tld file unter /WEB-INF => so the information should been found (as it does on tomcat)
any other ideas you've got ?
thx a lot so far!
Lars,
on my local installation i have preprared a test application with simple JSP and it works :
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<display:table />
te result is :
Nothing found to display.
So i'm not sure if your application is correctly deployed and configured in WebAS.
^^ okay .. i've done so too and guess what:
it works!
(with no content - but the tags are interpreted!)
so i guess the failure must have been somewhere in the script - although this does not match the error-code.....
i'll try it on myself to find the bug or if i'll not suceed i'll post it here
thx a lot bojidar!
me again
here's the code of my monitor.jsp.
i'm reading the bean data with
request.setAttribute( "datenbasis", new xxx.webtransportmonitor.AuftragBean(vknummer, vkname,belegnummer,debnummer,wenummer) );
and displaying it with
<jsp:useBean id="datenbasis" scope="request" type="xxx.webtransportmonitor.AuftragBean" />
<logic:iterate id="details" name="datenbasis">
<table class="detailtabelle">
<tr><td><b>Auftragsnummer:</b></td> <td><bean:write name="details" property="verkaufsbeleg"></bean:write></td></tr>
==> works fine!!!
and with the displaytag-part mentioned before, which causes the error,
i guess the displaytag / webas can't deal with this:
request.setAttribute( "datenbasis", new xxx.webtransportmonitor.AuftragBean(vknummer, vkname,belegnummer,debnummer,wenummer) );
because a simpe <display: table/> tag works as described.
you've got any idea how to fix it?
<%@ page language="java"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles"
prefix="tiles"%>
<%
String vknummer=""; //Keine Angabe das Ermittlung auf Basis des Namens von ABAP Seite
String vkname=session.getAttribute("username").toString().toUpperCase();
String belegnummer=session.getAttribute("parameter_belegnummer").toString();
String debnummer=session.getAttribute("parameter_debitornummer").toString();
String wenummer=session.getAttribute("parameter_wenummer").toString();
request.setAttribute( "datenbasis", new xxx.webtransportmonitor.AuftragBean(vknummer, vkname,belegnummer,debnummer,wenummer) );
%>
<jsp:useBean id="datenbasis" scope="request" type="xxx.webtransportmonitor.AuftragBean"></jsp:useBean>
<logic:iterate id="details" name="datenbasis">
<table class="detailtabelle">
<tr><td><b>Auftragsnummer:</b></td> <td><bean:write name="details" property="verkaufsbeleg"></bean:write></td></tr>
<tr><td><b>Verkäufer:</b></td> <td><bean:write name="details" property="verkaueferName"></bean:write></td></tr>
<tr><td><b>Sachbearbeiter:</b></td> <td><bean:write name="details" property="sachbearbeiterName"></bean:write></td></tr>
<tr><td><b>Techniker:</b></td> <td><bean:write name="details" property="technikerName"></bean:write></td></tr>
<tr><td><b>Debitor:</b></td> <td><bean:write name="details" property="debitorName"></bean:write> (<bean:write name="details" property="debitorNummer"></bean:write>)</td></tr>
<tr><td><b>Adresse:<a href="http://maps.google.de/maps?ie=UTF8&hl=de&q=<bean:write name="details" property="debitorStrasse"/>, <bean:write name="details" property="debitorPlz"></bean:write> <bean:write name="details" property="debitorStadt"></bean:write>&f=q&sampleq=1" target="_blank">[Route]</a></b></td> <td><bean:write name="details" property="debitorStrasse"></bean:write>, <bean:write name="details" property="debitorPlz"></bean:write> <bean:write name="details" property="debitorStadt"></bean:write></td></tr>
<tr><td><b>Warenempfänger:</b></td> <td><bean:write name="details" property="warenempfaengerName"></bean:write> (<bean:write name="details" property="warenempfaengerNummer"></bean:write>)</td></tr>
<tr><td><b>Adresse:<a href="http://maps.google.de/maps?ie=UTF8&hl=de&q=<bean:write name="details" property="warenempfaengerStrasse"/>, <bean:write name="details" property="warenempfaengerPlz"></bean:write> <bean:write name="details" property="warenempfaengerStadt"></bean:write>&f=q&sampleq=1" target="_blank">[Route]</a></b></td> <td><bean:write name="details" property="warenempfaengerStrasse"></bean:write>, <bean:write name="details" property="warenempfaengerPlz"></bean:write> <bean:write name="details" property="warenempfaengerStadt"></bean:write></td></tr>
</table>
</logic:iterate>
</div>
<div class="daten">
<display:table id="parent" name="datenbasis" export="true" sort="list" pagesize="20" requestURI="/doLogin.do">
<display:setProperty name="basic.msg.empty_list_row">
<tr class="empty"><td colspan="{0}">Keine Daten zum Anzeigen vorhanden</td></tr>
</display:setProperty>
<display:setProperty name="basic.msg.empty_list">
Keine Daten zum Anzeigen vorhanden
</display:setProperty>
<display:setProperty name="paging.banner.full">
<span class="ueberschrifttext"> [<a href="{1}">Erste Seite</a>/ <a href="{2}">Vorherige</a>] {0} [ <a href="{3}">Nächste</a>/ <a href="{4}">Letzte Seite </a>]</span>
</display:setProperty>
<display:setProperty name="paging.banner.first">
<span class="ueberschrifttext"> [Erste Seite/Vorherige] {0} [ <a href="{3}">Nächste</a>/ <a href="{4}">Letzte Seite</a>] </span>
</display:setProperty>
<display:setProperty name="paging.banner.one_item_found">
<span class="pagebanner">Ein Auftrag gefunden.</span>
</display:setProperty>
<display:setProperty name="paging.banner.last">
<span class="ueberschrifttext">[ <a href="{1}">Erste Seite</a>/ <a href="{2}">Vorherige</a>] {0} [Nächste/Letzte Seite] </span>
</display:setProperty>
<display:setProperty name="paging.banner.onepage">
<span class="ueberschrifttext">{0}</span>
</display:setProperty>
<display:setProperty name="paging.banner.some_items_found">
<span class="ueberschrifttext"> {0} Aufträge gefunden. Auftrag {2} bis {3}. </span><br/>
</display:setProperty>
<display:setProperty name="export.banner">
<div class="exportieren"> Exportieren als: {0} </div>
</display:setProperty>
<%-- css class automatically added to even rows --%>
<display:setProperty name="css.tr.even" value="zeilenfarbe1"></display:setProperty>
<%-- css class automatically added to odd rows --%>
<display:setProperty name="css.tr.odd" value="zeilenfarbe2"></display:setProperty>
<%-- css class automatically added to the header of sorted columns --%>
<display:setProperty name="css.th.sorted" value="sorted"></display:setProperty>
<%-- css class automatically added to the main table tag --%>
<display:setProperty name="css.table" value="liste"></display:setProperty>
<%-- css class automatically added to any sortable column --%>
<display:setProperty name="css.th.sortable" value="sortable"></display:setProperty>
<display:column title="Nr." href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="idNummer" sortable="true" headerClass="sortable"></display:column>
<display:column title="Datum" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="auftragAngelegtDatum_german_short" sortable="true" headerClass="sortable"></display:column>
<display:column title="Auftrag" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="verkaufsbeleg" sortable="true" headerClass="sortable"></display:column>
<display:column title="PLZ" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="debitorPlz" sortable="true" headerClass="sortable"></display:column>
<display:column title="Stadt" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="debitorStadt" sortable="true" headerClass="sortable"></display:column>
<display:column title="Debitor" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="debitorName" sortable="true" headerClass="sortable"></display:column>
<display:column title="Warenem." href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="warenempfaengerName" sortable="true" headerClass="sortable"></display:column>
<display:column title="Status 1" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="auftragsStatus" sortable="true" headerClass="sortable"></display:column>
<display:column title="Code/Datum" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="auftragsStatus_code"></display:column>
<display:column title="Status 2" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="auftragsStatus2" sortable="true" headerClass="sortable"></display:column>
<display:column title="Code/Datum" href="../showMonitor.do" paramId="order" paramProperty="verkaufsbeleg" property="auftragsStatus2_code"></display:column>
</display:table>
</div>
What is teh error now? Is it like the last posted by you :
The error is: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E003A0000001D00001340000426D6C7F5C1AE]#
You can find in devTrace file the full stacktrace of teh error and serach for the cause of it.
Maybe now the problem is <display:table tag configuration.
Edit:
I've prepared another simple example in order to test your scenario in both case - with setting attribute and with javaBean. It works fine!. Here is the code:
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%-- request.setAttribute( "test", new java.util.Date()); --%>
<jsp:useBean id="test" beanName="java.util.Date" scope="request" type="java.util.Date" />
<display:table name="test" >
<display:column property="day" />
<display:column property="month" />
<display:column property="year" />
</display:table>
and the result is :
Day Month Year
5 0 107
Hi Bojidar,
thx for your answer, i'm back @ work now and just testet your hint..
and guess what.....
Can't insert page '/jsp/monitor.jsp' : Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp].
there he is again if you say the code is running properly i might guess that the tiles framework have some problems with this
<%-- request.setAttribute( "test", new java.util.Date()); --%>
any hint ?
Lars,
i don't know how do you run my example but there is nothing about monitor.jsp in it.
So if you copy/paste my test code into a JSP file named test.jsp, place this JSP into the root of your application, request it with URL http://host:port/test.jsp it should work. Unless if you have some special servlet/filter mapping in your web.xml , which doesn't transport the request directly.
Regards
Bojidar
oh, sorry, just inserted as instead of the normal content ..
here we go with a stand-alone jsp which gives a more specific failure
#1.5#00112529C81E005A0000006F000013400004270FF9BAE759#1168849474609#/System/Server/WebRequests#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#2####d4cdfa10a47111dba18500112529c81e#SAPEngine_Application_Thread[impl:3]_28##0#0#Error#1#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Plain###Processing HTTP request to servlet [jsp] finished with error.
The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/test.jsp].
Exception id: [00112529C81E005A0000006E000013400004270FF9BAE458]#
<b>Exception ID: 00112529C81E004D00000015000013400004271029FF8385</b>
#
#1.5#00112529C81E004D00000014000013400004271029FF7DA7#1168850284416#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#Guest#2####b77cb800a47311dbcc5100112529c81e#SAPEngine_Application_Thread[impl:3]_7##0#0#Error#1#/System/Server#Plain###Runtime error in compiling of the JSP file <D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/test.jsp> !
The error is: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E004D00000012000013400004271029FF79F4]#
#1.5#00112529C81E004D00000015000013400004271029FF8385#1168850284416#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#Guest#2####b77cb800a47311dbcc5100112529c81e#SAPEngine_Application_Thread[impl:3]_7##0#0#Error##Plain###Processing HTTP request to servlet [jsp] finished with error. The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/test.jsp].
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:117)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.getClassName(JSPServlet.java:238)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.compileAndGetClassName(JSPServlet.java:429)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:117)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:62)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:58)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:373)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.customTagAction(JspElement.java:381)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.action(JspElement.java:135)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.ElementCollection.action(ElementCollection.java:52)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.initParser(JSPParser.java:339)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:105)
... 22 more
Caused by: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Unknown class name [java.lang.Object].
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.convertString(TagBeginGenerator.java:365)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generateSetters(TagBeginGenerator.java:187)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generateServiceMethodStatements(TagBeginGenerator.java:212)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generate(TagBeginGenerator.java:269)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.customTagAction(JspElement.java:379)
... 26 more
#
#1.5#00112529C81E004D00000017000013400004271029FF87CA#1168850284416#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#2####b77cb800a47311dbcc5100112529c81e#SAPEngine_Application_Thread[impl:3]_7##0#0#Error#1#/System/Server/WebRequests#Plain###Processing HTTP request to servlet [jsp] finished with error.
The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/test.jsp].
Exception id: [00112529C81E004D00000015000013400004271029FF8385]#
Just tried to use a session parameter and not a request (thought it might could be this)...
but the same error...
#
#1.5#00112529C81E00580000001900001340000427116CB4BF85#1168855698569#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.jsp.JSPParser#Guest#2####5292e790a48011dbc2ae00112529c81e#SAPEngine_Application_Thread[impl:3]_3##0#0#Error#1#/System/Server#Plain###Runtime error in compiling of the JSP file <D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp> !
The error is: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E00580000001700001340000427116CB4BB9A]#
#1.5#00112529C81E00580000001A00001340000427116CB4C588#1168855698569#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#Guest#2####5292e790a48011dbc2ae00112529c81e#SAPEngine_Application_Thread[impl:3]_3##0#0#Error##Plain###Processing HTTP request to servlet [jsp] finished with error. The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp].
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:117)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.getClassName(JSPServlet.java:238)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.compileAndGetClassName(JSPServlet.java:429)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:117)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:62)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:58)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:373)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.customTagAction(JspElement.java:381)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.action(JspElement.java:135)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.ElementCollection.action(ElementCollection.java:52)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.customTagAction(JspElement.java:385)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.action(JspElement.java:135)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.ElementCollection.action(ElementCollection.java:52)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.initParser(JSPParser.java:339)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:105)
... 22 more
Caused by: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Unknown class name [java.lang.Object].
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.convertString(TagBeginGenerator.java:365)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generateSetters(TagBeginGenerator.java:187)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generateServiceMethodStatements(TagBeginGenerator.java:212)
at com.sap.engine.services.servlets_jsp.lib.jspparser.taglib.TagBeginGenerator.generate(TagBeginGenerator.java:269)
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspElement.customTagAction(JspElement.java:379)
... 29 more
#
#1.5#00112529C81E00580000001C00001340000427116CB4CA05#1168855698569#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/webtpmonitor#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#2####5292e790a48011dbc2ae00112529c81e#SAPEngine_Application_Thread[impl:3]_3##0#0#Error#1#/System/Server/WebRequests#Plain###Processing HTTP request to servlet [jsp] finished with error.
The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [D:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/webtpmonitor/servlet_jsp/webtransportmonitor/root/jsp/monitor.jsp].
Exception id: [00112529C81E00580000001A00001340000427116CB4C588]#
so it seems that displaytag on WebAS is not somehow able to deal with beans in session / request scope, since everything is going well on Tomcat ?!?
i'm thankfull for every bit of help.
can anyone help me to clear this error
#1.5#00188B794B7300560000002C00001FAC00042DE7CEF25F43#1176373539418#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/FinalKetera#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#2####28306460e8e011dba56c00188b794b73#SAPEngine_Application_Thread[impl:3]_18##0#0#Error#1#/System/Server/WebRequests#Plain###Processing HTTP request to servlet [action] finished with error.
The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [C:/usr/sap/J2E/JC00/j2ee/cluster/server0/apps/sap.com/FinalKetera/servlet_jsp/procurement/root/pages/layouts/MercuryLayOut.jsp].
Hi,
can anyone help me where i will resources and how it is including in jsp
in jstl fmt i have written like this
<name>basename</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
And in jsp
<fmt:setBundle basename="resources.ErrorAndPermissions" var="errsAndPerms" scope="application" />
can u tell me the way
Hello All,
Any one found solution for this problem, even we are facing the same problem.
Interestingly this error reported only on productive system not on our development and test systems, though all three are of WAS 6.40 SP19 level.
You help in this regard is highly appreciated!
Best reagrds,
Immanuel.
###
Error Message
Date : 03/08/2008
Time : 16:31:24:742
Message : com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page [I:/usr/sap/P70/JC00/j2ee/cluster/server1/apps/dekabank.de/essproto/servlet_jsp/essprotoweb/root/jsp/zg/views/zgmss.jsp].
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:118)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.getClassName(JSPServlet.java:238)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.compileAndGetClassName(JSPServlet.java:429)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
at catwalk.server.webapp.MediatedFlowServletEx.forwardToResultPage(MediatedFlowServletEx.java:663)
at catwalk.server.webapp.MediatedFlowServletEx.doPost(MediatedFlowServletEx.java:594)
at catwalk.server.webapp.MediatedFlowServletEx.doGet(MediatedFlowServletEx.java:272)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: com.sap.engine.services.servlets_jsp.server.jsp.exceptions.ParseException: TagLibValidator returns error(s) for taglib [http://java.sun.com/jstl/xml]: [
com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 96(:main:, row:229, col:66)(:main:, row=229, col=66) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 96(:main:, row:229, col:66)
].
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.validate(JSPParser.java:244)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.initParser(JSPParser.java:349)
at com.sap.engine.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:106)
... 25 more
Severity : Error
Category :
Location : System.err
Application : dekabank.de/essproto
Thread : SAPEngine_Application_Thread[impl:3]_2
Datasource : 1204988967932:I:\usr\sap\P70\JC00\j2ee\cluster\server1\log\defaultTrace.trc
Message ID : 00110A56EB2000150000000A000065DC000447EEA9E09FBF
Source Name : System.err
Argument Objs :
Arguments :
Dsr Component : Gimli01.dekager_P70_1637751
Dsr Transaction : b59ad120ed2411dcb56500110a56eb20
Dsr User : Guest
Indent : 0
Level : 0
Message Code :
Message Type : 0
Relatives :
Resource Bundlename :
Session : 2
Source : System.err
ThreadObject : SAPEngine_Application_Thread[impl:3]_2
Transaction :
User : Guest
Date : 03/08/2008
Time : 16:31:24:742
Message : Runtime error in compiling of the JSP file <I:/usr/sap/P70/JC00/j2ee/cluster/server1/apps/dekabank.de/essproto/servlet_jsp/essprotoweb/root/jsp/zg/views/zgmss.jsp> !
The error is: com.sap.engine.services.servlets_jsp.server.jsp.exceptions.ParseException: TagLibValidator returns error(s) for taglib [http://java.sun.com/jstl/xml]: [
com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 96(:main:, row:229, col:66)(:main:, row=229, col=66) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 96(:main:, row:229, col:66)
].
Exception id: [00110A56EB20001500000007000065DC000447EEA9E095FD]
Severity : Error
Category : /System/Server
Location : com.sap.engine.services.servlets_jsp.server.jsp.JSPParser
Application : dekabank.de/essproto
Thread : SAPEngine_Application_Thread[impl:3]_2
Datasource : 1204988967932:I:\usr\sap\P70\JC00\j2ee\cluster\server1\log\defaultTrace.trc
Message ID : 00110A56EB20001500000009000065DC000447EEA9E09AAE
Source Name : com.sap.engine.services.servlets_jsp.server.jsp.JSPParser
Argument Objs :
Arguments :
Dsr Component : Gimli01.dekager_P70_1637751
Dsr Transaction : b59ad120ed2411dcb56500110a56eb20
Dsr User : Guest
Indent : 0
Level : 0
Message Code :
Message Type : 0
Relatives : /System/Server
Resource Bundlename :
Session : 2
Source : com.sap.engine.services.servlets_jsp.server.jsp.JSPParser
ThreadObject : SAPEngine_Application_Thread[impl:3]_2
Transaction :
User : Guest
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi All ,
I am also facing same problem.I am using SAP WebAS 7.0.
I am getting the following error.
==================================================
#Error##Plain###com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: Internal error while parsing JSP page
=======================================================
Caused by: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Tag library descriptor cannot be found for uri:].
at com.sap.engine.services.servlets_jsp.lib.jspparser.syntax.JspTaglibDirective.verifyAttributes(JspTaglibDirective.java:146)
any idea why i am getting this error.
the same code works fine in tomcat webserver.
Pls help,
Regards
Suresh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lars,
i suppose that the error is the URI of tld-s declared in taglib directives.
Do you have such files under /WEB-INF/ directory?
If the TLDs are in jar-files , they should be under /META-INF directory with exat name i.e. :META-INF/taglib.tld
In this case, you should use the URI tag of TLD file as URI into the jsp taglib directive. For the displaytags1.1 that i've recently downladed, this looks like :
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
It should works this way, please try and share result.
Regards
Bojidar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thx for your help.
i got the file (content postet before) named <b>\WEB-INFdisplaytag.tld</b> included in the project - so everything is fine - also on tomcat, everything works fine, so the problem must be somehow in the WebAS so that the tld defintions are not found correctly...
a change to <b><%@ taglib uri="http://displaytag.sf.net" prefix="display" %></b> (i've tried this also as my first solution before switching to manually including the tld's) also results in the same error:
The error is: com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E003A0000001D00001340000426D6C7F5C1AE]#
do i might have to include the tag definitions somewhere in the j2ee-deployment xml or somewhere else in the application description and not just in the jsp file ?
i noticed that while deploying the ear to the WebAS the dialog popup shows a window called "Tag Libary" with options Tag URI and Taglib Location - and there are no entries for this project..
so the displaytag should might be included there so that the whole project knows about the tag and not just the single jsp page references it?
if someone know how to reference the tld "in global way" so that it's is shown by visual administrator - please write
Hi Lars,
could you post the whole error pls.
You can use the "Exception id" string to find the whole error message into file :
\usr\sap\SID\JCxx\j2ee\cluster\server0\log\defaultTrace.0.trc
Or you can seth the property of http service "DetailedErrorResponse" to "true" and when you re-request you should see the whole error stack trace in the browser window.
Regards
Bojidar
PS And refine the version of displayTag you use - 1.1 or 1.0 ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bojidar!
<b>error-msg:</b>
[code]
com.sap.engine.services.servlets_jsp.lib.jspparser.exceptions.JspParseException: Cannot parse custom tag with short name [table].
Exception id: [00112529C81E003D0000001E00001340000426D691CE394F]#
[/code]
<b>displayTag version:</b> 1.1 (http://displaytag.sourceforge.net/11/)
So as i guessed, the <table> tag from displaytag canno't be interpreted correctly because the tld's are somehow not recognized by the WebAS i think.
this is the code which causes the error:
<b><%@ taglib uri="/WEB-INF/displaytag.tld" </b>
<<b>display:table</b> id="parent" name="datenbasis" export="true" sort="list" pagesize="20" requestURI="/doLogin.do">
...
<b></display:table></b>
<b>content of displaytag.tld</b>
[CODE]
<?xml version="1.0" encoding="UTF-8"?>
<!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.1</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>display</short-name>
<uri>http://displaytag.sf.net</uri>
<display-name>Display *: Tag Library</display-name>
<description>
The display tag library is an open source suite of custom tags that provide high level web presentation patterns
which will work in a MVC model, and provide a significant amount of functionality while still being simple and
straight-forward to use. The primary tag in the library is the Table tag.
</description>
<tag>
<name>table</name>
<tag-class>org.displaytag.tags.TableTag</tag-class>
<tei-class>org.displaytag.tags.TableTagExtraInfo</tei-class>
<body-content>JSP</body-content>
<display-name>table</display-name>
<description>
Displays a list in an html table, formatting each item in the list according to the Column tags nested inside of
this tag. Use the list attribute to indicate the Collection of data, in some scope, that the tag should operate
on. Supports the export of the list data to alternative formats such as CSV, Excel, and XML. The contents of the
list can be sorted, and the list can be broken into individual pages for display. If you use this tag in Struts,
or in some other framework where the page is included via a jsp:include, you should use the requestURI attribute
to indicate where tag generated links should point.
</description>
<attribute>
<name>list</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Reference to the object used as source for the table. Can be an expression like requestScope.object.property .
You must define either the name attribute or the list attribute. Using "Name" is suggested.
</description>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
reference to the object used as source for the table. Can be an expression like requestScope.object.property. In
the EL version of the taglibrary this must be an EL expression which points to the source object.
</description>
</attribute>
<attribute>
<name>length</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>number of records to be shown</description>
</attribute>
<attribute>
<name>offset</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>index of the first record to be shown</description>
</attribute>
<attribute>
<name>pagesize</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>number of records in a page</description>
</attribute>
<attribute>
<name>decorator</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Fully qualified class name for a TableDecorator. Use a TableDecorator to provide custom operations against the
whole list, such as computing totals. Must extend org.displaytag.decorator.TableDecorator.
</description>
</attribute>
<attribute>
<name>requestURI</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
When the present, links for sorting, exports, and paging are formed by adding any tag generated parameters to
the value of requestURI attribute.
</description>
</attribute>
<attribute>
<name>requestURIcontext</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>
Enable/disable prepending of application context to generated links. Default is true, you can set it to false in
order to generate cross-context links.
</description>
</attribute>
<attribute>
<name>excludedParams</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Whitespace separated list containg the name of parameters which should NOT be forwarded during paging or
sorting. You can use excludedParams="*" to match (exclude) any parameter.
</description>
</attribute>
<attribute>
<name>varTotals</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Store a java.util.Map of the column totals in a pageContext variable by this name. The keys of the map are
"column" and the column number (first column is "column1", etc); values are the corresponding total for the
column; columns that are not marked as to total="true" will be omitted from the map. The variable will ONLY be
available within the footer tag and after the end of the table, it is not available with the body of the table
or columns.
</description>
</attribute>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute</description>
</attribute>
<attribute>
<name>class</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute</description>
</attribute>
<attribute>
<name>cellspacing</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute</description>
</attribute>
<attribute>
<name>cellpadding</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute. Better using "padding" css attribute in style or class</description>
</attribute>
<attribute>
<name>frame</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>rules</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>summary</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute</description>
</attribute>
<attribute>
<name>htmlId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html "id" pass through attribute</description>
</attribute>
<attribute>
<name>export</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>enable/disable export. Valid values are true or false</description>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
See "uid". The id attribute can't be a runtime expression in jsp 1.0 compliant containers, while uid will allow
it.
</description>
</attribute>
<attribute>
<name>uid</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Unique id used to identify this table. The object representing the current row is also added to the pageContext
under this name and the current row number is added using the key uid_rowNum. Two tables in the same page can't
have the same uid (paging and sorting will affect both). If no "htmlId" is specified the same value will be used
for the html id of the generated table.
</description>
</attribute>
<attribute>
<name>sort</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Use 'page' if you want to sort only visible records, or 'list' if you want to sort the full list, or 'external'
if the data is sorted outside displaytag.
</description>
</attribute>
<attribute>
<name>defaultsort</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>The index of the column that will be used by default for sorting (starting from 1)</description>
</attribute>
<attribute>
<name>defaultorder</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The default order for the sorted column. Valid values are "ascending" (default) or "descending"
</description>
</attribute>
<attribute>
<name>partialList</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>enable/disable partialLists. Valid values are true or false</description>
</attribute>
<attribute>
<name>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Used only when partialList=true. Reference to the Integer object containing the size of the total dataset. Can
be an expression like requestScope.object.property. In the EL version of the taglibrary this must be an EL
expression which points to the source object.
</description>
</attribute>
<example>
<![CDATA[
<display:table name="someList" export="true" id="row" requestURI="MyAction.do">
<display:column sortable="true" title="ID"> <c:out value="${row.id}"/> </display:column>
<display:column property="email" autolink="true"/>
<display:column property="description" title="Comments"/>
</display:table>
]]>
</example>
</tag>
<tag>
<name>column</name>
<tag-class>org.displaytag.tags.ColumnTag</tag-class>
<body-content>JSP</body-content>
<display-name>column</display-name>
<description>
Displays a property of a row object inside a table. MUST be nested inside of a Table tag. The value displayed will
be the results of a decorator (if any); else the property named by the 'property' attribute; or if the 'property'
attribute is null, then the results of evaluating the JSP body of the tag.
</description>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
name of the property in the bean specified in the parent table tag (via the "name" attribute) mapped to this
column
</description>
</attribute>
<attribute>
<name>sortProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
name of the property in the bean specified in the parent table tag (via the "name" attribute) which will be used
to sort values in the column. This can be used when the column body is filled or a decorator is used and column
should sort on undeorated values.
</description>
</attribute>
<attribute>
<name>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>title of the column (text for the th cell)</description>
</attribute>
<attribute>
<name>comparator</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
The classname of comparator to use when sorting this column, or the comparator itself. Defaults to the
DefaultComparator.
</description>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Resource key used to lookup the title value. Only works if "title" is not defined. Works together with a
configured I18nResourceProvider, specified via the displaytag.properties file. By default, if JSTL is available,
the JSTL provider is used, which makes this attribute work the same as fmt:message's key property.
</description>
</attribute>
<attribute>
<name>nulls</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>
By default, null values don't appear in the list. By setting 'nulls' to 'true', then null values will appear as
"null" in the list (mostly useful for debugging). Defaults to 'false'.
</description>
</attribute>
<attribute>
<name>total</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>
If true, will total the contents of this column. This value is available via the Map named in varTotals for the
table. Column values need to Numbers.
</description>
</attribute>
<attribute>
<name>sortable</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>Set to 'true' to make the column sortable. Defaults to 'false'.</description>
</attribute>
<attribute>
<name>defaultorder</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The default sort order for this column. Valid values are "ascending" (default) or "descending"
</description>
</attribute>
<attribute>
<name>autolink</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>
Automatically hyperlink URLs and email addresses that appear in the column. Defaults to 'false'.
</description>
</attribute>
<attribute>
<name>format</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
A MessageFormat patter that will be used to decorate objects in the column. Can be used as a "shortcut" for
simple column decorations. @since 1.1
</description>
</attribute>
<attribute>
<name>escapeXml</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
<description>
Set it to true to escape special characters in html and xml output. Defaults to 'false'. @since 1.1
</description>
</attribute>
<attribute>
<name>media</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Use this attribute to keep a column from being output during an export. The column will only render for the
named media type(s) - it won't be added to the table if the current request media is not supported. Can be any
space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page
in the example webapp for more details.
</description>
</attribute>
<attribute>
<name>href</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
<![CDATA[
The base URL used to construct the dynamic link. If this attribute is provided, then the data that is shown for
this column is wrapped inside a <a href> tag with the url provided through this attribute. Typically you
would use this attribute along with one of the struts-like param attributes (param*) to create a dynamic link so
that each row creates a different URL based on the data that is being viewed. An empty href value will generate
a link to the current page, preserving parameters just like for paging links.]]>
</description>
</attribute>
<attribute>
<name>url</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The base URL used to construct the dynamic link. This attribute has the same functionality as the href
attribute, but it pre-pends the contextPath.
</description>
</attribute>
<attribute>
<name>paramId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The name of the request parameter that will be dynamically added to the generated href URL. The corresponding
value is defined by the paramProperty and (optional) paramName attributes, optionally scoped by the paramScope
attribute.
</description>
</attribute>
<attribute>
<name>paramName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The name of a JSP bean that is a String containing the value for the request parameter named by paramId (if
paramProperty is not specified), or a JSP bean whose property getter is called to return a String (if
paramProperty is specified). The JSP bean is constrained to the bean scope specified by the paramScope property,
if it is specified. If paramName is omitted, then it is assumed that the current object being iterated on is the
target bean.
</description>
</attribute>
<attribute>
<name>paramProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The name of a property of the current object being iterated on, whose return value will be used as the value of
the parameter (named by the paramId attribute) that will be dynamically added to this href URL. If paramName is
also specified the property will not be fetched from the object being iterated on, but from the bean specified
by paramName. The support of paramProperty in conjunction with paramName will be probably removed in future: use
paramProperty only if you need a property in the iterated object, elsewhere use only paramName (you can select a
property using an expression name.property).
</description>
</attribute>
<attribute>
<name>paramScope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
@deprecated - use Expressions in paramName. The scope within which to search for the bean specified by the
paramName attribute. If not specified, all scopes are searched. If paramName is not provided, then the current
object being iterated on is assumed to be the target bean.
</description>
</attribute>
<attribute>
<name>maxLength</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>
If this attribute is provided, then the column's displayed is limited to this number of characters. An elipse
(...) is appended to the end if this column is linked, and the user can mouseover the elipse to get the full
text. Be careful on using this attribute for String which can contain html tags or entities, or together with
the autolink attribute turned on: displaytag will do its best trying to avoid leaving unclosed tags or broken
entities in the output, but a complex or bad input could lead to unattended results.
</description>
</attribute>
<attribute>
<name>maxWords</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>
If this attribute is provided, then the column's displayed is limited to this number of words. An elipse (...)
is appended to the end if this column is linked, and the user can mouseover the elipse to get the full text. Be
careful on using this attribute for String which can contain html tags or entities, or together with the
autolink attribute turned on: displaytag will do its best trying to avoid leaving unclosed tags or broken
entities in the output, but a complex or bad input could lead to unattended results.
</description>
</attribute>
<attribute>
<name>class</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
html pass through attribute; use this instead of directly coding presentational atttributes.
</description>
</attribute>
<attribute>
<name>headerClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>"class" html attribute added only for header cells.</description>
</attribute>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>group</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
<description>
The grouping level (starting at 1 and incrementing) of this column (indicates if successive contain the same
values, then they should not be displayed). The level indicates that if a lower level no longer matches, then
the matching for this higher level should start over as well. If this attribute is not included, then no
grouping is performed.
</description>
</attribute>
<attribute>
<name>decorator</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Whitespace separated list of column decorators to apply to the current column. A table decorator name can be the
name of an object in page, request, session or application scope or a fully qualified class name of a class
implementing the org.displaytag.decorator.DisplaytagColumnDecorator interface. If a decorator is specified for
the entire table, then this decorator will decorate that decorator.
</description>
</attribute>
<attribute>
<name>sortName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Used with sort="external", the name that should be given to the server to sort this column. IE if
sortName="buzz", then the href for this column to sort will have a parameter d-(encodedId)-s=buzz. If sortName
is ommitted the value for the sort param will default to the column number.
</description>
</attribute>
<attribute>
<name>headerScope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>"scope" html attribute added only for header cells.</description>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>"scope" html attribute.</description>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
<description>
Static value to be used for the column. It has the same meaning of setting a value in the tag body, but values
set using this attribute will not be coerced to Strings. You may need to use the value attribute instead of a
scriptlet in the tag body if you need to calculate totals on numeric values.
</description>
</attribute>
</tag>
<tag>
<name>setProperty</name>
<tag-class>org.displaytag.tags.SetPropertyTag</tag-class>
<body-content>JSP</body-content>
<display-name>setProperty</display-name>
<description>
Sets the indicated property on the enclosing Table tag. MUST be nested within a Table tag. As an alternative, you
may create a property file that holds sitewide defaults; see the configuration documentation or the
DisplayPropertiesLoaderServlet javadoc for information.
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>The name of the property to set on the enclosing Table tag.</description>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
The value to which the property is set. You can also set the property value in the tag body.
</description>
</attribute>
<example>
<![CDATA[
<display:setProperty name="paging.banner.placement" value="bottom" />
or
<display:setProperty name="paging.banner.placement">bottom</display:setProperty>
]]>
</example>
</tag>
<tag>
<name>footer</name>
<tag-class>org.displaytag.tags.TableFooterTag</tag-class>
<body-content>JSP</body-content>
<display-name>footer</display-name>
<description>
Tag wich should be nested into a table tag to provide a custom table footer. The body of the tag is into the tfoot
section of the table. The totals variable, if designated, will be in pageContext in this tag.
</description>
<attribute>
<name>media</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Use this attribute to keep a footer from being output during an export. The caption will only render for the
named media type(s) - it won't be added to the table if the current request media is not supported. Can be any
space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page
in the example webapp for more details.
</description>
</attribute>
<example>
<![CDATA[
<display:table name="someList" varTotals="totals">
<display:column property="itemName"/>
<display:column property="price" total="true"/>
<display:footer>
<tr>
<td>Total Bill:</td>
<td><c:out value="${totals.column2}" /></td>
<tr>
</display:footer>
</display:table>
]]>
</example>
</tag>
<tag>
<name>caption</name>
<tag-class>org.displaytag.tags.CaptionTag</tag-class>
<body-content>JSP</body-content>
<display-name>caption</display-name>
<description>
Simple tag which mimics the html caption tag. Use it inside a table tag to display a caption.
</description>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>class</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>lang</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>dir</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>html pass through attribute.</description>
</attribute>
<attribute>
<name>media</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<description>
Use this attribute to keep a caption from being output during an export. The caption will only render for the
named media type(s) - it won't be added to the table if the current request media is not supported. Can be any
space separated combination of 'html', 'csv', 'xml', 'all', or 'excel'. Defaults to 'all'. See the export page
in the example webapp for more details.
</description>
</attribute>
<example>
<![CDATA[
<display:table name="someList">
<display:column property="mail"/>
<display:column property="total"/>
<display:caption>This is the table caption</display:caption>
</display:table>
]]>
</example>
</tag>
</taglib>
[/CODE]
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.