<action name="form03" class="lessons.Form03Action"> <result name="success" type="dispatcher">page03-success.jsp</result> <result name="error" type="dispatcher">page03-error.jsp</result> </action>
As you can see that result configuration is made up of two parts: result mappings, which you've already seen associated with an action mapping and result types.
Configuring result types
Every package in WebWork can be associated with one or more result types.
<xwork> <include name="webwork-default.xml"/> <package name="default" extends="webwork-default"> <result-types> <result-type name="dispatcher" class="..." default="true"/> <result-type name="redirect" class="..."/> </result-types> <default-interceptor-ref name="defaultStack"/> <action name="login" class="org.hibernate.auction.web.actions.users.Login"> <result name="input">login.jsp</result> <result name="success" type="redirect">/secure/dashboard.action</result> </action> </package> </xwork>
Reducing configuration duplication with global result mappings
Another way to reduce the amount of configuration in xwork.xml is through the
use of global result mappings. Web applications often have a common set of
results that are used across many actions. Common results include redirects to
login actions and permission-denied pages. Rather than define each of these
results in every action mapping, WebWork lets you centralize the definitions for
the common pages.
<package name="default" extends="webwork-default"> <global-results> <result name="login" type="redirect">/login!default.action</result> <result name="unauthorized">/unauthorized.jsp</result> </global-results> <!-- other package declarations --> </package>
Be Careful
Because global reseults are searched after local results, you can override any global result
mapping by creating a local result mapping for a specific action. Recall that
results can point to locations using relative or absolute paths. Because you may
not know the context in which they're being invoked, it's best to use absolute
paths for global results