I recently asked about using XSL / t to create a site layout and child pages here . Where the layout will decorate the child page. I want to expand this idea and come up with SiteMesh functionality. Please note that I will have a very small number of xsl layout files, most of my xsl files should be for child pages. The layout is quite simple, it includes a heading, a main menu, a footer, a body with the contents of a div below it. SiteMesh allows you to define template files as a fairly standard html file, and then child pages that will override parent sections. For example, here is the basic template (decorator) for sitemesh:
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<head>
<title>
<decorator:title default="SiteMesh Tutorial Example" /> - Site Title
</title>
<style type="text/css">@import "css/global.css";</style>
<decorator:head />
<body>
<div id="header">
<h2><a href="http://www.my-site.com/">Mysite.com</a> goes here</h2>
</div>
<div id="content">
<decorator:body />
</div>
</body>
</html>
And here will be an example of a child page:
<html>
<head>
<title>Child Page</title>
<style type='text/css'>
p { margin: 10 }
</style>
</head>
<body>
Content Goes here
</body>
</html>
,
, : , : ..
, .
, , XSL/T , , , , , , , (, , ), , .
, , , , , ( , , )
<xml>
<section>Blogs</section>
<page>UserBlogs</page>
<data>
<blogs>
<blog>
<title>First Blog</title>
<author>John Doe</author>
<description>...</description>
</blog>
</blogs>
</data>
</xml>
, , :
<html>
<head>
<title> - Site Title</title>
<script src="common-scripts.js"></script>
<style type="text/css">@import "common.css" </style>
</head>
<body>
<div id="header">Header/log that stuff here</div>
<div id="menu">
<ul><li><a href="#">Cat 1</a></li><li><a href="#">Cat 2</a></li></ul>
</div>
<div id="content">
</div>
<div id="footer">My Site, copyright, bla bla</div>
</body>
</html>
, , , xml (, ), , ( / ).
, .
, xml, , .. , , , , xsl: call-template, xsl: variable xml. - , //.
, ?
: http://www.devguru.com/technologies/xslt/quickref/xslt_element_calltemplate.html
xsl: call-template xsl: , , , .