Hi all

Has anyone had a problem with JSTL becoming too complex?
Here's the story: We are a news site that's migrating to JSTL for complex
news stories. Now, you can imagine that a story contains a number of
paragraphs which in return contain images, which themselves contain files,
which...
It all gets pretty complex, with objects containing ArrayLists of other
objects which contain ArrayLists of objects etc. etc.

Anyway, I'm trying to build all this with a complex test story, but if my
JSP template gets too complex, this is what happens:
javax.servlet.ServletException: (class: org/apache/jsp/storytest$jsp,
method: _jspService signature:
(Ljavax/servlet/http/HttpServletRequest;Ljavax/se
rvlet/http/HttpServletResponse;)V) Illegal target of jump or branch
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:485)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:683)
        at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatch
er.java:574)
        at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher
.java:497)
        at
ch.xobix.layouttool.module.common.X2Modul_Story.generateContent(X2Modul_Stor
y.java:300)
        at
ch.xobix.layouttool.module.common.X2Modul_Base.generateOnlineContentAndPrint
(X2Modul_Base.java:48)
        at
ch.xobix.databean.layout.X2PageScript.renderAndWrite(X2PageScript.java:159)
        at ch.xobix.layouttool.X2PageViewer.view(X2PageViewer.java:30)
        at ch.xobix.basement.X2Dispatcher.doGet(X2Dispatcher.java:244)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1017)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1115
)
        at java.lang.Thread.run(Thread.java:536)

When I have a working template, I can copy a <c:forEach> loop that works,
and then the whole thing crashes. If I take it out again, it works. So, from
my (perhaps naive) point of view, JSTL can only handle templates up to a
certain complexity... is that true? I would hate to hear a "yes"...

If anyone is interested, I'll gladly send source code, but my template is
around 35K...

Thanks & best regards,
Eric


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to