Hi all,
I am trying to standardize the look and feel to my web app, first idea was to use 
filters that modifies the contents of all web pages and format it to the desired 
layout.
of course, there were Tiles to do that, so why re-invent the wheel?
I went through a little problem, when tried to register the tile definition and use it 
as a bean to load up during application startup.. as per Ted Husted tutorials (thanks 
a lot Ted :)) here is my situation :
-Struts 1.1
-Jdeveloper 10g

tiles-defs.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
  <!DOCTYPE tiles-definitions PUBLIC
  "-//Apache Software Foundation//DTD Tiles Configurations 1.1//EN"
  "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd";>
<tiles-definitions>
<!-- 
 Standard definitions
 -->
    <definition name="stdLayoutDef" path="/Layout/stdLayout.jsp">
        <put name="title"  value="Title String" />
        <put name="header" value="/Layout/stdHeader.jsp" />
        <put name="footer" value="/Layout/stdFooter.jsp" />
        <put name="body"   value="/res/error/resStatusReport.jsp" />
    </definition>
</tiles-definitions>

struts-config.xml:
...
  <plug-in className="org.apache.struts.tiles.TilesPlugin">
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
    <set-property property="definitions-parser-validate" value="true"/>
    <set-property property="moduleAware" value="true"/>
  </plug-in>
...

Jsp file: stdStatusReport.jsp
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ include  file="/Layout/stdDefinition.jspf"%>

<tiles:insert beanName="stdLayoutDef" flush="true">
<tiles:put name="title"  type="string">
          <bean:message key='title.statusreport' /> 
</tiles:put>
<tiles:put name="header" value="/Layout/stdHeader.jsp" />
<tiles:put name="body" value="/res/error/resStatusReportBody.jsp" />
<tiles:put name="footer" value="/Layout/stdFooter.jsp" />
</tiles:insert>

The Log report with the error:
500 Internal Server Error
javax.servlet.jsp.JspException: Error - Tag Insert : No value defined for bean 
'stdLayoutDef' with property 'null' in scope 'null'.
        at org.apache.struts.taglib.tiles.InsertTag.processBean(InsertTag.java:667)
        at 
org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:491)
        at org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:451)
        at _res._error._resStatusReport._jspService(resStatusReport.jsp:5)
        [/res/error/resStatusReport.jsp]
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
        at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:348)
        at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
        at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
        at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:356)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:614)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
        at 
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
        at 
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
        at 
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
        at 
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
        at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:356)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:614)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:784)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
        at com.evermind[Oracle Application Server Containers for J2EE 10g 
(9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
        at java.lang.Thread.run(Thread.java:536)

Reply via email to