org.apache.struts2.portlet.result
Class PortletVelocityResult

java.lang.Object
  extended by org.apache.struts2.dispatcher.StrutsResultSupport
      extended by org.apache.struts2.portlet.result.PortletVelocityResult
All Implemented Interfaces:
Result, Serializable, StrutsStatics

public class PortletVelocityResult
extends StrutsResultSupport

Using the Servlet container's JspFactory, this result mocks a JSP execution environment and then displays a Velocity template that will be streamed directly to the servlet output.

This result type takes the following parameters:

This result follows the same rules from StrutsResultSupport.

Example:
 <!-- START SNIPPET: example -->
  <result name="success" type="velocity">
    <param name="location">foo.vm</param>
  </result>
  <!-- END SNIPPET: example -->
 

See Also:
Serialized Form

Field Summary
private  String defaultEncoding
           
private static Log log
           
private static long serialVersionUID
           
private  VelocityManager velocityManager
           
 
Fields inherited from class org.apache.struts2.dispatcher.StrutsResultSupport
DEFAULT_PARAM
 
Fields inherited from interface org.apache.struts2.StrutsStatics
HTTP_REQUEST, HTTP_RESPONSE, PAGE_CONTEXT, SERVLET_CONTEXT, SERVLET_DISPATCHER, STRUTS_PORTLET_CONTEXT
 
Constructor Summary
PortletVelocityResult()
           
PortletVelocityResult(String location)
           
 
Method Summary
protected  org.apache.velocity.context.Context createContext(VelocityManager velocityManager, ValueStack stack, HttpServletRequest request, HttpServletResponse response, String location)
          Creates the VelocityContext that we'll use to render this page.
 void doExecute(String location, ActionInvocation invocation)
          Executes the result given a final location (jsp page, action, etc) and the action invocation (the state in which the action was executed).
private  void executeActionResult(String location, ActionInvocation invocation)
          Executes the result
 void executeRenderResult(String finalLocation, ActionInvocation invocation)
          Creates a Velocity context from the action, loads a Velocity template and executes the template.
protected  String getContentType(String templateLocation)
          Retrieve the content type for this template.
protected  String getEncoding(String templateLocation)
          Retrieve the encoding for this template.
protected  org.apache.velocity.Template getTemplate(ValueStack stack, org.apache.velocity.app.VelocityEngine velocity, ActionInvocation invocation, String location, String encoding)
          Given a value stack, a Velocity engine, and an action invocation, this method returns the appropriate Velocity template to render.
 void setDefaultEncoding(String encoding)
           
 void setVelocityManager(VelocityManager mgr)
           
 
Methods inherited from class org.apache.struts2.dispatcher.StrutsResultSupport
conditionalParse, execute, getLastFinalLocation, setEncode, setLocation, setParse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

log

private static final Log log

defaultEncoding

private String defaultEncoding

velocityManager

private VelocityManager velocityManager
Constructor Detail

PortletVelocityResult

public PortletVelocityResult()

PortletVelocityResult

public PortletVelocityResult(String location)
Method Detail

setVelocityManager

public void setVelocityManager(VelocityManager mgr)

setDefaultEncoding

public void setDefaultEncoding(String encoding)

doExecute

public void doExecute(String location,
                      ActionInvocation invocation)
               throws Exception
Description copied from class: StrutsResultSupport
Executes the result given a final location (jsp page, action, etc) and the action invocation (the state in which the action was executed). Subclasses must implement this class to handle custom logic for result handling.

Specified by:
doExecute in class StrutsResultSupport
Parameters:
location - the location (jsp page, action, etc) to go to.
invocation - the execution state of the action.
Throws:
Exception - if an error occurs while executing the result.

executeActionResult

private void executeActionResult(String location,
                                 ActionInvocation invocation)
Executes the result

Parameters:
location - The location string
invocation - The action invocation

executeRenderResult

public void executeRenderResult(String finalLocation,
                                ActionInvocation invocation)
                         throws Exception
Creates a Velocity context from the action, loads a Velocity template and executes the template. Output is written to the servlet output stream.

Parameters:
finalLocation - the location of the Velocity template
invocation - an encapsulation of the action execution state.
Throws:
Exception - if an error occurs when creating the Velocity context, loading or executing the template or writing output to the servlet response stream.

getContentType

protected String getContentType(String templateLocation)
Retrieve the content type for this template.

People can override this method if they want to provide specific content types for specific templates (eg text/xml).

Returns:
The content type associated with this template (default "text/html")

getEncoding

protected String getEncoding(String templateLocation)
Retrieve the encoding for this template.

People can override this method if they want to provide specific encodings for specific templates.

Returns:
The encoding associated with this template (defaults to the value of 'struts.i18n.encoding' property)

getTemplate

protected org.apache.velocity.Template getTemplate(ValueStack stack,
                                                   org.apache.velocity.app.VelocityEngine velocity,
                                                   ActionInvocation invocation,
                                                   String location,
                                                   String encoding)
                                            throws Exception
Given a value stack, a Velocity engine, and an action invocation, this method returns the appropriate Velocity template to render.

Parameters:
stack - the value stack to resolve the location again (when parse equals true)
velocity - the velocity engine to process the request against
invocation - an encapsulation of the action execution state.
location - the location of the template
encoding - the charset encoding of the template
Returns:
the template to render
Throws:
Exception - when the requested template could not be found

createContext

protected org.apache.velocity.context.Context createContext(VelocityManager velocityManager,
                                                            ValueStack stack,
                                                            HttpServletRequest request,
                                                            HttpServletResponse response,
                                                            String location)
Creates the VelocityContext that we'll use to render this page.

Parameters:
velocityManager - a reference to the velocityManager to use
stack - the value stack to resolve the location against (when parse equals true)
location - the name of the template that is being used
Returns:
the a minted Velocity context.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.