Hi Øystein,

Unfortunately, no, the NetUI template tag does not support templates
within templates. I took a look through the implementation of the tag
and did not see support for this.

Specifically, I noticed that the template tag creates a new template
context object and adds it to the request. It has a HashMap for
holding the body content of each section tag defined in a JSP. In your
example, the 'detailContent' section is defined in your initial JSP
and is put in the sections HashMap for the ComponentTemplate.jsp
template. Then when the ComponentTemplate.jsp is processed, there is
another template tag for MainTemplate.jsp, so a new template context
object is created. It replaces the original one on the request. It
does not have the 'detailContent' section in its HashMap of sections.
Then, when the the includeSection tag in ComponentTemplate.jsp is
processed, it cannot find the body content for that section.

Carlin

On 11/13/06, Øystein Amundsen <[EMAIL PROTECTED]> wrote:
Hi.

We've been using Beehive for almost a month now. I have great experience in 
Java and writing servlets, but this is my first go at both jsp and beehive 
technologies. I should be considered a novice as such.

Upon developing our proof of concept, we've discovered the use for placing 
netui-templates inside a master template. Consider the following:

The master template should consist of the applications main menu and other 
components building the skeleton of the application. This template should only 
include one large main section. All modules pertaining to the applications 
functional aspect, should each use their own template extending the master 
template. This way, we can completely separate all HTML code and functional 
business logic.

From a technical point of view, we're trying;

--------------------------------------
 MainTemplate.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8"%>

<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-html-1.0"; 
prefix="netui"%>
<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-databinding-1.0"; 
prefix="netui-data"%>
<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-template-1.0"; 
prefix="netui-template"%>

<netui:html>
<head>
  <title>MyTitle</title>
  <link rel="Stylesheet" href="<%=request.getContextPath()%>/templates/style.css" 
/>
</head>

<netui:body>
 ...
<netui-template:includeSection name="docPath" />
 ...
<jsp:include page="menu.jsp" />
...
</netui:body>
</netui:html>


--------------------------------------
 ComponentTemplate.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8"%>

<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-html-1.0"; 
prefix="netui"%>
<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-databinding-1.0"; 
prefix="netui-data"%>
<[EMAIL PROTECTED] uri="http://beehive.apache.org/netui/tags-template-1.0"; 
prefix="netui-template"%>

<netui-template:template templatePage="../../../../../templates/mainPage.jsp">
  <netui-template:section name="docPath">
...
  </netui-template:section>

  <netui-template:section name="docContent">
...
    <netui-template:includeSection name="detailContent" />
...
  </netui-template:section>
</netui-template:template>


--------------------------------------

The result is a page returning with an error message stating that the template does not 
contain any section with the name "detailContent".

Is this not possible?
Does every module need to carry it's own html, however similar to other parts 
of the system, or, does every module's template page need to implement the same 
html as the MainTemplate.jsp?



--------------------------------------
Øystein Amundsen
Bouvet AS, System developer

mail    : [EMAIL PROTECTED]
mobile  : 480 19 009
address : Noreveien 4, 5542 Haugesund


Reply via email to