com.opensymphony.web
Class PageForwarder

java.lang.Object
  |
  +--com.opensymphony.web.PageForwarder
Direct Known Subclasses:
Controller

public abstract class PageForwarder
extends java.lang.Object

Simple abstract class for easy forwarding servlets to other servlets. This class does nothing clever, it can just be used to keep your code easier to manage.

Extend it to make an implementation and pass accross in the constructor the appropriate objects. It is then easy to create methods that can be called from the HttpServlet.

Example

 // Class implementation
 class MyItemViewer extends PageForwarder {

   void listItems(MyItem[] items) {
     set("items",items);
     forward("listpage.jsp");
   }

   void displayItem(MyItem item) {
     set("item",item);
     forward("viewpage.jsp");
   }

 }

 // Servlet
 public class MyServlet extends HttpServlet {

   public void doGet(HttpServletRequest request,
                     HttpServletResponse response)
                     throws ServletException {
     MyForwarder f = new MyForwarder();
     f.init(this, request, response, "/path/to/jsppages/");
     MyItem item = // something.
     if (item!=null) {
       f.displayItem(item);
     }
     else {
       MyItem[] allItems = //something
       f.listItems(allItems);
     }
   }
 }

 

Version:
$Revision: 1.12 $
Author:
Joe Walnes

Field Summary
 java.lang.String baseUrl
          Base URL (in context to web-app) to append to page URLs.
protected  javax.servlet.ServletContext context
          Servlet context of calling class.
protected  javax.servlet.http.HttpServletRequest request
          Current page request.
protected  javax.servlet.http.HttpServletResponse response
          Resulting response with which to forward page.
 
Constructor Summary
PageForwarder()
          Default constructor.
 
Method Summary
protected  void error(int errorCode, java.lang.String message)
          Send HTTP error message.
protected  void forward(java.lang.String page)
          Forward request to specified page (under baseUrl directory).
protected  void include(java.lang.String page)
          Include specified page (under baseUrl directory).
 void init(ActionContext actionContext)
           
 void init(ActionContext actionContext, java.lang.String baseUrl)
           
 void init(javax.servlet.http.HttpServlet servlet, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Initialize forwarder by setting required values.
 void init(javax.servlet.http.HttpServlet servlet, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String baseUrl)
          Initialize forwarder by setting required values.
 void init(javax.servlet.jsp.PageContext pageContext)
          Initialize forwarder from JSP
 void init(javax.servlet.jsp.PageContext pageContext, java.lang.String baseUrl)
          Initialize forwarder from JSP
protected  void redirect(java.lang.String page)
          Same as {@see #forward(java.lang.String)} except HTTP redirect is sent instead.
protected  void set(java.lang.String key, java.lang.Object value)
          Set an attribute in the HttpRequest object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

context

protected javax.servlet.ServletContext context
Servlet context of calling class.

request

protected javax.servlet.http.HttpServletRequest request
Current page request.

response

protected javax.servlet.http.HttpServletResponse response
Resulting response with which to forward page.

baseUrl

public java.lang.String baseUrl
Base URL (in context to web-app) to append to page URLs. (Include trailing slash).
Constructor Detail

PageForwarder

public PageForwarder()
Default constructor. After calling this, the init() method must be called by Servlet.
Method Detail

init

public void init(javax.servlet.http.HttpServlet servlet,
                 javax.servlet.http.HttpServletRequest request,
                 javax.servlet.http.HttpServletResponse response,
                 java.lang.String baseUrl)
Initialize forwarder by setting required values.
Parameters:
servlet - Calling servlet class.
request - Current page request.
response - Resulting response with which to forward page.
baseUrl - Base URL (in context to web-app) to append to page URLs. (Include trailing slash).

init

public void init(javax.servlet.http.HttpServlet servlet,
                 javax.servlet.http.HttpServletRequest request,
                 javax.servlet.http.HttpServletResponse response)
Initialize forwarder by setting required values.
Parameters:
servlet - Calling servlet class.
request - Current page request.
response - Resulting response with which to forward page.

init

public void init(javax.servlet.jsp.PageContext pageContext,
                 java.lang.String baseUrl)
Initialize forwarder from JSP
Parameters:
pageContext - JSP pageContext
baseUrl - Base URL (in context to web-app) to append to page URLs. (Include trailing slash).

init

public void init(javax.servlet.jsp.PageContext pageContext)
Initialize forwarder from JSP
Parameters:
pageContext - JSP pageContext

init

public void init(ActionContext actionContext,
                 java.lang.String baseUrl)

init

public void init(ActionContext actionContext)

set

protected void set(java.lang.String key,
                   java.lang.Object value)
Set an attribute in the HttpRequest object.
Parameters:
key - Key to refer to stored attribute.
value - Value of attribute.
See Also:
ServletRequest.setAttribute(String, Object)

include

protected void include(java.lang.String page)
                throws javax.servlet.ServletException
Include specified page (under baseUrl directory).
Parameters:
page - Page to include. Prepended to baseUrl.
Throws:
javax.servlet.ServletException - Thrown if anything goes wrong in trying to include the page (such as page not found).
See Also:
RequestDispatcher.forward(ServletRequest, ServletResponse)

forward

protected void forward(java.lang.String page)
                throws javax.servlet.ServletException
Forward request to specified page (under baseUrl directory).
Parameters:
page - Page to forward request to. Prepended to baseUrl.
Throws:
javax.servlet.ServletException - Thrown if anything goes wrong in trying to forward the page (such as page not found).
See Also:
RequestDispatcher.forward(ServletRequest, ServletResponse)

redirect

protected void redirect(java.lang.String page)
                 throws javax.servlet.ServletException
Same as {@see #forward(java.lang.String)} except HTTP redirect is sent instead. Note that attributes set using set() method will not be available to page.

error

protected void error(int errorCode,
                     java.lang.String message)
              throws javax.servlet.ServletException
Send HTTP error message.
Parameters:
errorCode - HTTP Error Code.
message - Error message (may be null).
See Also:
HttpServletResponse

See www.opensymphony.com for more information.