Class DefaultPage
- java.lang.Object
-
- org.apache.turbine.modules.pages.DefaultPage
-
- Direct Known Subclasses:
TemplatePage
public class DefaultPage extends Object implements Page
When building sites using templates, Screens need only be defined for templates which require dynamic (database or object) data.This page can be used on sites where the number of Screens can be much less than the number of templates. The templates can be grouped in directories with common layouts. Screen modules are then expected to be placed in packages corresponding with the templates' directories and follow a specific naming scheme.
The template parameter is parsed and and a Screen whose package matches the templates path and shares the same name minus any extension and beginning with a capital letter is searched for. If not found, a Screen in a package matching the template's path with name Default is searched for. If still not found, a Screen with name Default is looked for in packages corresponding to parent directories in the template's path until a match is found.
For example if data.getParameters().getString("template") returns /about_us/directions/driving.wm, the search follows about_us.directions.Driving, about_us.directions.Default, about_us.Default, Default, VelocitySiteScreen.
Only one Layout module is used, since it is expected that any dynamic content will be placed in navigations and screens. The layout template to be used is found in a similar way to the Screen. For example the following paths will be searched in the layouts subdirectory: /about_us/directions/driving.wm, /about_us/directions/default.wm, /about_us/default.wm, /default.wm.
This approach allows a site with largely static content to be updated and added to regularly by those with little Java experience.
The code is an almost a complete clone of the FreeMarkerSitePage written by John McNally. I've only modified it for Template use.
- Version:
- $Id$
- Author:
- Dave Bryson, Henning P. Schmiedehausen, Peter Courcoux
-
-
Field Summary
Fields Modifier and Type Field Description protected ActionLoader
actionLoader
Injected loader instanceprotected LayoutLoader
layoutLoader
Injected loader instanceprotected org.apache.logging.log4j.Logger
log
Loggingprotected ScreenLoader
screenLoader
Injected loader instance-
Fields inherited from interface org.apache.turbine.modules.Page
CACHE_SIZE_DEFAULT, CACHE_SIZE_KEY, NAME, PREFIX
-
-
Constructor Summary
Constructors Constructor Description DefaultPage()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doBuild(PipelineData pipelineData)
Builds the Page.protected void
doBuildAfterAction(PipelineData pipelineData)
Can be overridden by template Pages to set up data needed to process a template.protected void
doBuildBeforeAction(PipelineData pipelineData)
Can be used by template Pages to stuff the Context into the PipelineData so that it is available to the Action module and the Screen module via getContext().protected void
doPostBuild(PipelineData pipelineData)
Can be overridden to perform actions when the request is fully processed.
-
-
-
Field Detail
-
log
protected final org.apache.logging.log4j.Logger log
Logging
-
actionLoader
protected ActionLoader actionLoader
Injected loader instance
-
screenLoader
protected ScreenLoader screenLoader
Injected loader instance
-
layoutLoader
protected LayoutLoader layoutLoader
Injected loader instance
-
-
Constructor Detail
-
DefaultPage
public DefaultPage()
-
-
Method Detail
-
doBuild
public void doBuild(PipelineData pipelineData) throws Exception
Builds the Page.
-
doBuildBeforeAction
protected void doBuildBeforeAction(PipelineData pipelineData) throws Exception
Can be used by template Pages to stuff the Context into the PipelineData so that it is available to the Action module and the Screen module via getContext(). It does nothing here.- Parameters:
pipelineData
- Turbine information.- Throws:
Exception
- a generic exception.
-
doBuildAfterAction
protected void doBuildAfterAction(PipelineData pipelineData) throws Exception
Can be overridden by template Pages to set up data needed to process a template. It does nothing here.- Parameters:
pipelineData
- Turbine information.- Throws:
Exception
- a generic exception.
-
doPostBuild
protected void doPostBuild(PipelineData pipelineData) throws Exception
Can be overridden to perform actions when the request is fully processed. It does nothing here.- Parameters:
pipelineData
- Turbine information.- Throws:
Exception
- a generic exception.
-
-