public class FreemarkerResult extends StrutsResultSupport
The FreemarkarManager class configures the template loaders so that the template location can be either
/WEB-INF/views/home.ftl
/com/company/web/views/home.ftl
<result name="success" type="freemarker">foo.ftl</result>
Modifier and Type | Field and Description |
---|---|
protected freemarker.template.Configuration |
configuration |
protected FreemarkerManager |
freemarkerManager |
protected ActionInvocation |
invocation |
protected String |
location |
protected freemarker.template.ObjectWrapper |
wrapper |
DEFAULT_PARAM
HTTP_REQUEST, HTTP_RESPONSE, PAGE_CONTEXT, SERVLET_CONTEXT, SERVLET_DISPATCHER, STRUTS_ACTION_TAG_INVOCATION, STRUTS_PORTLET_CONTEXT
Constructor and Description |
---|
FreemarkerResult() |
FreemarkerResult(String location) |
Modifier and Type | Method and Description |
---|---|
protected freemarker.template.TemplateModel |
createModel()
Build the instance of the ScopesHashModel, including JspTagLib support
Objects added to the model are
Application - servlet context attributes hash model
JspTaglibs - jsp tag lib factory model
Request - request attributes hash model
Session - session attributes hash model
request - the HttpServletRequst object for direct access
response - the HttpServletResponse object for direct access
stack - the OgnLValueStack instance for direct access
ognl - the instance of the OgnlTool
action - the action itself
exception - optional : the JSP or Servlet exception as per the servlet spec (for JSP Exception pages)
struts - instance of the StrutsUtil class
|
protected Locale |
deduceLocale()
Returns the locale used for the
Configuration.getTemplate(String, Locale) call. |
void |
doExecute(String locationArg,
ActionInvocation invocation)
Execute this result, using the specified template locationArg.
|
protected freemarker.template.Configuration |
getConfiguration()
This method is called from
doExecute(String, ActionInvocation) to obtain the
FreeMarker configuration object that this result will use for template loading. |
String |
getContentType()
allow parameterization of the contentType
the default being text/html
|
protected freemarker.template.ObjectWrapper |
getObjectWrapper()
This method is called from
doExecute(String, ActionInvocation) to obtain the
FreeMarker object wrapper object that this result will use for adapting objects into template
models. |
protected Writer |
getWriter()
The default writer writes directly to the response writer.
|
boolean |
isWriteIfCompleted() |
protected void |
postTemplateProcess(freemarker.template.Template template,
freemarker.template.TemplateModel data)
the default implementation of postTemplateProcess applies the contentType parameter
|
protected boolean |
preTemplateProcess(freemarker.template.Template template,
freemarker.template.TemplateModel model)
Called before the execution is passed to template.process().
|
void |
setContentType(String aContentType) |
void |
setFreemarkerManager(FreemarkerManager mgr) |
void |
setWriteIfCompleted(boolean writeIfCompleted)
Writes to the stream only when template processing completed successfully
|
void |
setWriter(Writer writer) |
conditionalParse, execute, getLastFinalLocation, getLocation, setEncode, setLocation, setParse
protected ActionInvocation invocation
protected freemarker.template.Configuration configuration
protected freemarker.template.ObjectWrapper wrapper
protected FreemarkerManager freemarkerManager
protected String location
public FreemarkerResult()
public FreemarkerResult(String location)
public void setFreemarkerManager(FreemarkerManager mgr)
public void setContentType(String aContentType)
public String getContentType()
public void doExecute(String locationArg, ActionInvocation invocation) throws IOException, freemarker.template.TemplateException
doExecute
in class StrutsResultSupport
locationArg
- the location (jsp page, action, etc) to go to.invocation
- the execution state of the action.IOException
freemarker.template.TemplateException
protected freemarker.template.Configuration getConfiguration() throws freemarker.template.TemplateException
doExecute(String, ActionInvocation)
to obtain the
FreeMarker configuration object that this result will use for template loading. This is a
hook that allows you to custom-configure the configuration object in a subclass, or to fetch
it from an IoC container.
The default implementation obtains the configuration from the ConfigurationManager instance.
freemarker.template.TemplateException
protected freemarker.template.ObjectWrapper getObjectWrapper()
doExecute(String, ActionInvocation)
to obtain the
FreeMarker object wrapper object that this result will use for adapting objects into template
models. This is a hook that allows you to custom-configure the wrapper object in a subclass.
The default implementation returns Configurable.getObjectWrapper()
public void setWriter(Writer writer)
protected Writer getWriter() throws IOException
IOException
protected freemarker.template.TemplateModel createModel() throws freemarker.template.TemplateModelException
freemarker.template.TemplateModelException
protected Locale deduceLocale()
Configuration.getTemplate(String, Locale)
call. The base implementation
simply returns the locale setting of the action (assuming the action implements LocaleProvider
) or, if
the action does not the configuration's locale is returned. Override this method to provide different behaviour,protected void postTemplateProcess(freemarker.template.Template template, freemarker.template.TemplateModel data) throws IOException
IOException
protected boolean preTemplateProcess(freemarker.template.Template template, freemarker.template.TemplateModel model) throws IOException
IOException
public boolean isWriteIfCompleted()
public void setWriteIfCompleted(boolean writeIfCompleted)
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.