How the Ubuntu Templates implement the MVC Model

From OpenCms Wiki
(Difference between revisions)
Jump to: navigation, search
 
(3 intermediate revisions by one user not shown)
Line 16: Line 16:
  
 
Here is an example of how the framework simplifies the creation of templates
 
Here is an example of how the framework simplifies the creation of templates
 
+
<pre>
<code lang="html">
+
 
<html><head>
 
<html><head>
  
Line 37: Line 36:
  
 
</html>
 
</html>
</source>
+
 
 +
</pre>

Latest revision as of 04:38, 28 October 2009

One of the Industry objectives when developing JSP’s is to have separation between code and HTML.

This resulted in the MVC model which the Ubuntu project strives to realize Instead of having templates the have complicated Java code on them we have "pure html templates"

We have a sepperate JSP the Controller JSP which has all the Java code for processing and delivering all the required aspects of the page as object properties

A third JSP is provided that uses a HashMap to keep pointers to all the site specific content so that common images, logos banners can be placed on any other web server and rendered as partt of the same page. It even handles limited internationalization so that you can switch between default language (English) and another (Zulu)

With all this complexity removed from the "Template Writer" making new template is now a simple task

We only have to place small scriptlets like this <%=Object.ProperyValue > on the template to render values stored in a hidden layer of Java code

The framework provide all the property values needed to create , breadcrumbs (hierarchical and same-site ) , body content …and even our special high-performance Imageless Style-sheet Rollover Button Menus

Here is an example of how the framework simplifies the creation of templates

<html><head>

<title><%=pageTitle %></title>

<link REL="STYLESHEET" TYPE="text/css" HREF="<%=templateData.getStyleSheetnName() %>">

<cms:editable />

</head>

<%=templateData.getBannerTags() %> 
<br>
<%=stbHCrumb.toString() %>
<br>
<%=templateData.getMenu() %> 
  
<cms:include element="body" editable="true"/>

</html>

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox