See Result Configuration for basic information about how results are configuration.
Overview
Result Types are classes that determine what happens after an Action executes and a Result is returned. Developers are free to create their own Result Types according to the needs of their application or environment. In WebWork 2 for example, Servlet and Velocity Result Types have been created to handle rendering views in web applications.
Note: All built in webwork result types implement the com.opensymphony.xwork.Result
interface, which represents a generic interface for all action execution results, whether that be displaying a webpage, generating an email, sending a JMS message, etc.
Result types define classes and map them to names to be referred in the action configuration results. This serves as a shorthand name-value pair for these classes.
... <result-types> <result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/> <result-type name="redirect" class="com.opensymphony.webwork.dispatcher.ServletRedirectResult"/> <result-type name="velocity" class="com.opensymphony.webwork.dispatcher.VelocityResult"/> <result-type name="chain" class="com.opensymphony.xwork.ActionChainResult"/> <result-type name="xslt" class="com.opensymphony.webwork.views.xslt.XSLTResult"/> <result-type name="jasper" class="com.opensymphony.webwork.views.jasperreports.JasperReportsResult"/> <result-type name="freemarker" class="com.opensymphony.webwork.views.freemarker.FreemarkerResult"/> <result-type name="httpheader" class="com.opensymphony.webwork.dispatcher.HttpHeaderResult"/> <result-type name="stream" class="com.opensymphony.webwork.dispatcher.StreamResult"/> </result-types> ...
<include file="webwork-default.xml"/> <package name="myPackage" extends="default"> <action name="bar" class="myPackage.barAction"> <!-- default result type is "dispatcher" --> <!-- default result name is "success" --> <result>foo.jsp</result> <result name="error">error.jsp</result> </result> </action> </package>
Result Types
Webwork provides several implementations of the com.opensymphony.xwork.Result
interface to make web-based interactions with your actions simple. These result types include:
- Chain Result - used for Action Chaining
- Dispatcher Result - used for JSP integration
- FreeMarker Result - used for FreeMarker integration
- HttpHeader Result - used to control special HTTP behaviors
- JasperReports Result - used for JasperReports integration
- Redirect Result - used to redirect to another URL
- Redirect Action Result - used to redirect to another action
- Stream Result - used to stream an InputStream back to the browser (usually for file downloads)
- Velocity Result - used for Velocity integration
- XSL Result - used for XML/XSLT integration
Results are specified in a xwork xml config file(xwork.xml) nested inside <action>. If the location
param is the only param being specified in the result tag, you can simplify it as follows:
<action name="bar" class="myPackage.barAction"> <result name="success" type="dispatcher"> <param name="location">foo.jsp</param> </result> </action>
or simplified
<action name="bar" class="myPackage.barAction"> <result name="success" type="dispatcher">foo.jsp</result> </action>
if you are extending webwork-default.xml, then the default result type is "dispatcher". Also, if you don't specify the name of a result, it is assumed to be "success". This means you can simply the result down to
<action name="bar" class="myPackage.barAction"> <result>foo.jsp</result> </action>
NOTE: The Parse attribute enables the location element to be parsed for expressions. An example of how this could be useful:
<result name="success" type="redirect">/displayCart.action?userId=${userId}</result>
NOTE: You can also specify global-results to use with multiple actions. This can save time from having to add the same result to many different actions. For more information on result tags and global-results, see Result Configuration section.