You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by mdiazf <mi...@gmail.com> on 2008/06/23 17:00:45 UTC

[s2] error nesting custom components

I'm getting a NullPointerException when I pass a custom component as a
parameter to another custom component.

The files are:

test_fail.jsp (throws NPE):
<%@ page contentType="text/html; charset=ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<s:component template="myComponent.jsp">
  <s:param name="body">
    <s:component template="myComponent_nested.jsp" />
  </s:param>
</s:component>


test_work.jsp (works ok):
<%@ page contentType="text/html; charset=ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<s:component template="myComponent_nested.jsp" />


myComponent.jsp:
<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<body>
  <s:property value="%{parameters.body}" escape="false" />
</body>
</html>


myComponent_nested.jsp:
<%@ page contentType="text/html; charset=ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<p>Some text...</p>
<s:form namespace="/" action="index" method="post">
</s:form>


As you can see I'm passing the component myComponent_nested.jsp as a
parameter to the component myComponent.jsp. That fails if any struts2 tag is
used in myComponent_nested.jsp (if I don't use any struts2 tag it works).
The component myComponent.jsp works ok if I pass a string instead of a
myComponent_nested.jsp.

The stack trace follows:

2008-06-23 16:49:24,703 [ERROR]
org.apache.struts2.components.template.JspTemplateEngine - Could not render
JSP template /template/xhtml/myComponent.jsp
2008-06-23 16:49:24,703 [ERROR] org.apache.struts2.components.UIBean - error
when rendering
java.lang.NullPointerException
	at org.apache.struts2.components.Include.include(Include.java:241)
	at
org.apache.struts2.components.template.JspTemplateEngine.renderTemplate(JspTemplateEngine.java:55)
	at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:530)
	at org.apache.struts2.components.UIBean.end(UIBean.java:484)
	at
org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
	at
org.apache.jsp.paginas.test_fail_jsp._jspx_meth_s_005fcomponent_005f0(test_fail_jsp.java:118)
	at org.apache.jsp.paginas.test_fail_jsp._jspService(test_fail_jsp.java:68)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
	at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)



Is this a bug or I'm doing something wrong?

Many thanks
-- 
View this message in context: http://www.nabble.com/-s2--error-nesting-custom-components-tp18071125p18071125.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org