You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

<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

  • No labels