FileDocCategorySizeDatePackage
RedirectTag.javaAPI DocExample3361Thu Jun 28 16:14:16 BST 2001com.ora.jsp.tags.generic

RedirectTag

public class RedirectTag extends TagSupport implements ParamParent
This class is a custom action for sending a redirect request, with possible parameter values URL encoded and the complete URL encoded for URL rewriting (session tracking).
author
Hans Bergsten, Gefion software
version
1.0

Fields Summary
private String
page
private Vector
params
Constructors Summary
Methods Summary
public intdoEndTag()
Appends possible URL encoded parameters to the main URL, encodes the result for URL rewriting. Clears the out buffer and sets the redirect response headers. Returns SKIP_PAGE to abort the processing of the rest of the page.

        StringBuffer encodedURL = new StringBuffer(page);
        if (params != null && params.size() > 0) {
            encodedURL.append('?");
            boolean isFirst = true;
            Enumeration e = params.elements();
            while (e.hasMoreElements()) {
                Param p = (Param) e.nextElement();
                if (!isFirst) {
                    encodedURL.append('&");
                }
                encodedURL.append(p.getName()).append('=").append(p.getValue());
                isFirst = false;
            }
        }
        try {
            JspWriter out = pageContext.getOut();
            out.clear();
            HttpServletResponse res = (HttpServletResponse) pageContext.getResponse();
            res.sendRedirect(res.encodeURL(encodedURL.toString()));
        }
        catch (IOException e) {}
        return SKIP_PAGE;
    
public intdoStartTag()
Override the default implementation so that possible param actions in the body are processed.

        // Reset per-use state set by nested elements
	params = null;

        return EVAL_BODY_INCLUDE;
    
public voidrelease()
Releases all instance variables.

        page = null;
        params = null;
        super.release();
    
public voidsetPage(java.lang.String page)
Sets the page attribute.

param
page the page URL to redirect to

        this.page = page;
    
public voidsetParam(java.lang.String name, java.lang.String value)
Adds a parameter name and value. This method is called by param tags in the action body.

param
name the parameter name
param
value the URL encoded parameter value

        if (params == null) {
            params = new Vector();
        }
        Param param = new Param(name, value);
        params.addElement(param);