This page describes some of the uses of the Layout Tag Library. Two illustrations are provided: one
explaining straight-forward tag usage and a second explaining the use
of the scripting variables. These and other examples can be found in the
example.war file. See the example instructions for details.
Template Page |
Assume that this jsp page is "/templates/a_template.jsp".
<%@ taglib uri="/djinnsoft/jade/layout.tld" prefix="layout" %>
<layout:template>
Inside the template A.<br />
<table>
<tr>
<td colspan="2"><layout:display fragmentName="header"/></td>
</tr>
<tr>
<td><layout:display fragmentName="sentence_a"/></td>
<td><layout:display fragmentName="sentence_b"/></td>
</tr>
<tr>
<td colspan=2><layout:display fragmentName="footer"/></td>
</tr>
</table>
Template A is done.<br />
</layout:template>
|
Jsp Page |
<%@ taglib
uri="/djinnsoft/jade/layout.tld"
prefix="layout" %>
<html>
<head><title>
Testing The Layout Manager
</title></head>
<body>
<h1>
Testing The Layout Manager
</h1>
Before layout<br />
<layout:layout
templateUri="/templates/a_template.jsp">
<layout:define fragmentName="header">
<h1>This is the Header</h1>
</layout:define>
<layout:define fragmentName="sentence_a">
<p>This is the Sentence A</p>
</layout:define>
<layout:define fragmentName="sentence_b">
<p>This is the Sentence B</p>
</layout:define>
<layout:define fragmentName="footer">
<h1>This is the Footer</h1>
</layout:define>
</layout:layout>
After layout<br />
</body>
</html>
|
<%@ taglib
uri="/djinnsoft/jade/layout.tld"
prefix="layout" %>
<html>
<head><title>
Testing The Layout Manager
</title></head>
<body>
<h1>
Testing The Layout Manager
</h1>
Before layout<br />
<layout:layout
templateUri="/templates/a_template.jsp">
<layout:define fragmentName="footer">
<h1>Place this at the bottom</h1>
</layout:define>
<layout:define fragmentName="header">
<h1>Place this at the top</h1>
</layout:define>
<layout:define fragmentName="sentence_b">
<p>Place this on the right</p>
</layout:define>
<layout:define fragmentName="sentence_a">
<p>Place this on the left</p>
</layout:define>
</layout:layout>
After layout<br />
</body>
</html>
|
HTML Result |
<html>
<head><title>
Testing The Layout Manager
</title></head>
<body>
<h1>
Testing The Layout Manager
</h1>
Before layout<br />
Inside the template A.<br />
<table>
<tr><td colspan="2">
<h1>
This is the Header
</h1>
</td></tr>
<tr>
<td><p>
This is the Sentence A
</p></td>
<td><p>
This is the Sentence B
</p></td>
</tr>
<tr><td colspan=2>
<h1>
This is the Footer
</h1>
</td></tr>
</table>
Template A is done.<br />
After layout<br />
</body>
</html>
|
<html>
<head><title>
Testing The Layout Manager
</title></head>
<body>
<h1>
Testing The Layout Manager
</h1>
Before layout<br />
Inside the template A.<br />
<table>
<tr><td colspan="2">
<h1>
Place this at the top
</h1>
</td></tr>
<tr>
<td><p>
Place this on the left
</p></td>
<td><p>
Place this on the right
</p></td>
</tr>
<tr><td colspan=2>
<h1>
Place this at the bottom
</h1>
</td></tr>
</table>
Template A is done.<br />
After layout<br />
</body>
</html>
|
This example illustrates the use of the layout and fragment scripting variables inside the template
file. Assume that an unknown number of ArticleTestRec s were inserted into the
layout in the JSP page. The template file below will display them in a table. The scripting
variables "layout" and "fragment" have been emphasized.
Template Page |
<%@ taglib uri="/djinnsoft/jade/layout.tld" prefix="layout" %>
<%@ page import="com.djinnsoft.jade.layout.ArticleTestRec" %>
<%@ page import="java.util.Iterator" %>
<layout:template>
Inside the template b.<br />
<table border="1">
<%
Iterator it = layout.getFragmentIds().iterator();
while( it.hasNext() ) {
%>
<layout:display fragmentId='<%=(Integer)it.next()%>'>
<tr>
<td><%= ((ArticleTestRec)fragment).getTitle() %></td>
<td><%= ((ArticleTestRec)fragment).getDeck () %></td>
</tr>
</layout:display>
<%
}
%>
</table>
Template b is done.<br>
</layout:template>
|
|