[
http://www.stripesframework.org/jira/browse/STS-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665#comment-12665
]
Joshua Pollak commented on STS-847:
-----------------------------------
I would love to help, but my knowledge of JSPs and tag technology is pretty
limited.
I won't argue with the general "JSPs for view" philosophy, but _relying_ on
that seems like a problem waiting to happen. Its also the type of problem that
can be very hard to debug or test for.
In my case I inherited a lot of legacy code which has a lot of code in the
JSPs, so I'm stuck. For now I've set our dependency to Stripes 1.5.3 and I'll
leave it like that for now.
> layout-component forces additional loading of full page
> -------------------------------------------------------
>
> Key: STS-847
> URL: http://www.stripesframework.org/jira/browse/STS-847
> Project: Stripes
> Issue Type: Bug
> Components: Tag Library
> Affects Versions: Release 1.5.6
> Reporter: Roman Kosenko
> Assignee: Ben Gunter
> Labels: layout
>
> Let's create, for example, test-layout.jsp:
> <%@taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
> <stripes:layout-definition>
> <stripes:layout-component name="test_component"/>
> </stripes:layout-definition>
> and sample test.jsp:
> <%@taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
> <stripes:layout-render name="/test-layout.jsp">
> <stripes:layout-component name="test_component">
> test
> </stripes:layout-component>
> </stripes:layout-render>
> <%
> new Exception().printStackTrace();
> %>
> when we try to load our test.jsp page we can see that this page is executed
> twice:
> java.lang.Exception
> at org.apache.jsp.test_jsp._jspService(test_jsp.java:74)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
> at
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927)
> at
> org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684)
> at
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678)
> at
> net.sourceforge.stripes.tag.layout.LayoutContext.doInclude(LayoutContext.java:191)
> at
> net.sourceforge.stripes.tag.layout.LayoutComponentRenderer.write(LayoutComponentRenderer.java:133)
> at
> net.sourceforge.stripes.tag.layout.LayoutComponentTag.doStartTag(LayoutComponentTag.java:202)
> at
> org.apache.jsp.test_002dlayout_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f0(test_002dlayout_jsp.java:119)
> at
> org.apache.jsp.test_002dlayout_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(test_002dlayout_jsp.java:97)
> at
> org.apache.jsp.test_002dlayout_jsp._jspService(test_002dlayout_jsp.java:70)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
> at
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927)
> at
> org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684)
> at
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678)
> at
> net.sourceforge.stripes.tag.layout.LayoutContext.doInclude(LayoutContext.java:191)
> at
> net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:155)
> at
> org.apache.jsp.test_jsp._jspx_meth_stripes_005flayout_002drender_005f0(test_jsp.java:120)
> at org.apache.jsp.test_jsp._jspService(test_jsp.java:70)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> at
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> at
> org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1731)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> java.lang.Exception
> at org.apache.jsp.test_jsp._jspService(test_jsp.java:74)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> at
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> at
> org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1731)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> I think that this is:
> 1) unintuitive and undocumented behavior;
> 2) too overhead in performance context (especially when we have a dozen of
> components);
> 3) may have side effect.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development