KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > webwork > RedirectViewMapping


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.webwork;
27
28 import webwork.dispatcher.ViewMapping;
29 import webwork.dispatcher.ViewActionWrapper;
30 import webwork.config.Configuration;
31
32 public class RedirectViewMapping implements ViewMapping
33 {
34   private ViewMapping delegate;
35   private String JavaDoc redirectionPrefix;
36     private static final String JavaDoc configPrefix = "redirect:";
37
38   public RedirectViewMapping(ViewMapping delegate)
39   {
40     this.delegate = delegate;
41
42     redirectionPrefix = "webwork.action.standard.Redirect."+Configuration.get("webwork.action.extension")+"?url=";
43   }
44
45   public Object JavaDoc getView(String JavaDoc action, String JavaDoc viewName)
46   {
47     Object JavaDoc view = delegate.getView(action, viewName);
48     if ("redirect".equals(viewName))
49       view = redirectionPrefix + view;
50         if (view != null && view instanceof ViewActionWrapper)
51         {
52             ViewActionWrapper wrapper = (ViewActionWrapper)view;
53
54             if (wrapper.getActionName().startsWith(configPrefix))
55             {
56                 view = new ViewActionWrapper(wrapper.getActionName().substring(configPrefix.length()), wrapper.getParams());
57                 view = redirectionPrefix + view;
58             }
59         }
60
61     return view;
62   }
63 }
Popular Tags