Class TemplateScreen
- java.lang.Object
-
- org.apache.turbine.modules.screens.TemplateScreen
-
- Direct Known Subclasses:
BaseJspScreen
,VelocityScreen
public abstract class TemplateScreen extends Object implements Screen
Template Screen. Base Template Screens should extend this class and override the buildTemplate() method. Users of the particular service can then override the doBuildTemplate() for any specific pre-processing. You can also override the doBuild() method in order to add extra functionality to your system, but you need to make sure to at least duplicate the existing functionality in order for things to work. Look at the code for the doBuild() method to get an idea of what is going on there (it is quite simple really).- Version:
- $Id$
- Author:
- Dave Bryson, Henning P. Schmiedehausen, Peter Courcoux
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.logging.log4j.Logger
log
Logging-
Fields inherited from interface org.apache.turbine.modules.Screen
CACHE_SIZE_DEFAULT, CACHE_SIZE_KEY, NAME, PREFIX
-
-
Constructor Summary
Constructors Constructor Description TemplateScreen()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract String
buildTemplate(PipelineData pipelineData)
This method should be implemented by Base template classes.String
doBuild(PipelineData pipelineData)
This method is called by the Screenloader to construct the Screen.protected abstract void
doBuildTemplate(PipelineData pipelineData)
This method should be overridden by subclasses that wish to add specific business logic.protected void
doPostBuildTemplate(PipelineData pipelineData)
This method can be overridden to write code that executes when the template has been built (called from a finally clause, so executes regardless of whether an exception is thrown or not)void
doRedirect(PipelineData pipelineData, String template)
You can call this within a Screen to cause an internal redirect to happen.void
doRedirect(PipelineData pipelineData, String screen, String template)
You can call this within a Screen to cause an internal redirect to happen.static void
setTemplate(PipelineData pipelineData, String template)
This method is used when you want to short circuit a Screen and change the template that will be executed next.
-
-
-
Field Detail
-
log
protected org.apache.logging.log4j.Logger log
Logging
-
-
Constructor Detail
-
TemplateScreen
public TemplateScreen()
-
-
Method Detail
-
doBuildTemplate
protected abstract void doBuildTemplate(PipelineData pipelineData) throws Exception
This method should be overridden by subclasses that wish to add specific business logic.- Parameters:
pipelineData
- Turbine information.- Throws:
Exception
- A generic exception.
-
buildTemplate
public abstract String buildTemplate(PipelineData pipelineData) throws Exception
This method should be implemented by Base template classes. It should contain the specific template service code to generate the template.- Parameters:
pipelineData
- Turbine information.- Returns:
- the content of the screen
- Throws:
Exception
- A generic exception.
-
doPostBuildTemplate
protected void doPostBuildTemplate(PipelineData pipelineData)
This method can be overridden to write code that executes when the template has been built (called from a finally clause, so executes regardless of whether an exception is thrown or not)- Parameters:
pipelineData
- Turbine information
-
doBuild
public String doBuild(PipelineData pipelineData) throws Exception
This method is called by the Screenloader to construct the Screen.
-
setTemplate
public static void setTemplate(PipelineData pipelineData, String template)
This method is used when you want to short circuit a Screen and change the template that will be executed next. Note that the current context will be applied to the next template that is executed. If you want to have the context executed for the next screen, to be the same one as the next screen, then you should use the TemplateScreen.doRedirect() method.- Parameters:
pipelineData
- Turbine information.template
- The name of the next template.
-
doRedirect
public void doRedirect(PipelineData pipelineData, String screen, String template) throws Exception
You can call this within a Screen to cause an internal redirect to happen. It essentially allows you to stop execution in one Screen and instantly execute another Screen. Don't worry, this does not do a HTTP redirect and also if you have anything added in the Context, it will get carried over.This class is useful if you have a Screen that submits to another Screen and you want it to do error validation before executing the other Screen. If there is an error, you can doRedirect() back to the original Screen.
- Parameters:
pipelineData
- Turbine information.screen
- Name of screen to redirect to.template
- Name of template.- Throws:
Exception
- A generic exception.
-
doRedirect
public void doRedirect(PipelineData pipelineData, String template) throws Exception
You can call this within a Screen to cause an internal redirect to happen. It essentially allows you to stop execution in one Screen and instantly execute another Screen. Don't worry, this does not do a HTTP redirect and also if you have anything added in the Context, it will get carried over.This class is useful if you have a Screen that submits to another Screen and you want it to do error validation before executing the other Screen. If there is an error, you can doRedirect() back to the original Screen.
- Parameters:
pipelineData
- Turbine information.template
- Name of template.- Throws:
Exception
- A generic exception.
-
-