[ 
http://www.stripesframework.org/jira/browse/STS-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12664#comment-12664
 ] 

Ben Gunter commented on STS-847:
--------------------------------

If you have ideas on how to implement streaming layouts without doing it the 
way I've done it, feel free to dig into the code and let me know what you come 
up with. Otherwise, you'll need to either code your pages with this in mind or 
use the old layout code, available in the upcoming 1.5.7 release via 
stripes-buffered-layouts.tld. It's generally accepted that JSPs should never 
change state anyway; it's a view technology.

> 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

Reply via email to