com.opensymphony.webwork.portlet.result
Class PortletVelocityResult

java.lang.Object
  extended by com.opensymphony.webwork.dispatcher.WebWorkResultSupport
      extended by com.opensymphony.webwork.portlet.result.PortletVelocityResult
All Implemented Interfaces:
WebWorkStatics, Result, Serializable

public class PortletVelocityResult
extends WebWorkResultSupport

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 WebWorkResultSupport.

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

Author:
Matt Ho
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.opensymphony.webwork.dispatcher.WebWorkResultSupport
DEFAULT_PARAM, encode, location, parse
 
Fields inherited from interface com.opensymphony.webwork.WebWorkStatics
HTTP_REQUEST, HTTP_RESPONSE, PAGE_CONTEXT, SERVLET_CONTEXT, SERVLET_DISPATCHER
 
Constructor Summary
PortletVelocityResult()
           
 
Method Summary
protected  org.apache.velocity.context.Context createContext(VelocityManager velocityManager, OgnlValueStack 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).
 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(OgnlValueStack 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.
 
Methods inherited from class com.opensymphony.webwork.dispatcher.WebWorkResultSupport
conditionalParse, execute, setEncode, setLocation, setParse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PortletVelocityResult

public PortletVelocityResult()
Method Detail

doExecute

public void doExecute(String location,
                      ActionInvocation invocation)
               throws Exception
Description copied from class: WebWorkResultSupport
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 WebWorkResultSupport
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.

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 'webwork.i18n.encoding' property)

getTemplate

protected org.apache.velocity.Template getTemplate(OgnlValueStack 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,
                                                            OgnlValueStack 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.

WebWork Project Page