You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2001/04/18 03:31:18 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/html ButtonTag.java CancelTag.java CheckboxTag.java LinkTag.java MultiboxTag.java RadioTag.java ResetTag.java SubmitTag.java

craigmcc    01/04/17 18:31:18

  Modified:    src/share/org/apache/struts/taglib/html ButtonTag.java
                        CancelTag.java CheckboxTag.java LinkTag.java
                        MultiboxTag.java RadioTag.java ResetTag.java
                        SubmitTag.java
  Log:
  Improve the ability of the struts-html.tld tags to operate in containers
  that do not call doAfterBody() when a tag has no body, and/or do not allow
  access to the bodyContent property in the doEndTag() method.
  
  Revision  Changes    Path
  1.3       +26 -17    jakarta-struts/src/share/org/apache/struts/taglib/html/ButtonTag.java
  
  Index: ButtonTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ButtonTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ButtonTag.java	2001/01/08 21:36:03	1.2
  +++ ButtonTag.java	2001/04/18 01:31:14	1.3
  @@ -1,13 +1,13 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ButtonTag.java,v 1.2 2001/01/08 21:36:03 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/08 21:36:03 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ButtonTag.java,v 1.3 2001/04/18 01:31:14 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/04/18 01:31:14 $
    *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -29,7 +29,7 @@
    *    Alternately, this acknowlegement may appear in the software itself,
    *    if and wherever such third-party acknowlegements normally appear.
    *
  - * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
    *    Foundation" must not be used to endorse or promote products derived
    *    from this software without prior written permission. For written
    *    permission, please contact apache@apache.org.
  @@ -67,13 +67,14 @@
   import javax.servlet.jsp.JspException;
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.JspWriter;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Renders an HTML BUTTON tag within the Struts framework.
    *
    * @author Don Clasen
  - * @version $Revision: 1.2 $ $Date: 2001/01/08 21:36:03 $
  + * @version $Revision: 1.3 $ $Date: 2001/04/18 01:31:14 $
    */
   
   public class ButtonTag extends BaseHandlerTag {
  @@ -88,6 +89,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The value of the button label.
        */
       protected String value = null;
  @@ -129,26 +136,33 @@
           this.value = value;
       }
   
  +
       // --------------------------------------------------------- Public Methods
   
  +
       /**
        * Process the start of this tag.
        * @exception JspException if a JSP exception has occurred
        */
       public int doStartTag() throws JspException {
  +
           // Do nothing until doEndTag() is called
  +        this.text = null;
           return (EVAL_BODY_TAG);
  +
       }
       
  +
       /**
        * Process the end of this tag.
        * @exception JspException if a JSP exception has occurred
        */
       public int doEndTag() throws JspException {
  +
           // Acquire the label value we will be generating
           String label = value;
  -        if ((label == null) && (bodyContent != null))
  -            label = bodyContent.getString().trim();
  +        if ((label == null) && (text != null))
  +            label = text;
           if ((label == null) || (label.trim().length() < 1))
               label = "Click";
   
  @@ -178,15 +192,9 @@
           results.append(">");
   
           // Render this element to our writer
  -        JspWriter writer = pageContext.getOut();
  -        try {
  -            writer.print(results.toString());
  -        }
  -        catch (IOException e) {
  -            throw new JspException
  -            (messages.getMessage("common.io", e.toString()));
  -        }
  -        
  +        ResponseUtils.write(pageContext, results.toString());
  +
  +        // Evaluate the remainder of this page
           return (EVAL_PAGE);
   
       }
  @@ -199,6 +207,7 @@
   
   	super.release();
   	property = null;
  +        text = null;
   	value = null;
   
       }
  
  
  
  1.3       +72 -46    jakarta-struts/src/share/org/apache/struts/taglib/html/CancelTag.java
  
  Index: CancelTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CancelTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CancelTag.java	2001/01/08 21:36:04	1.2
  +++ CancelTag.java	2001/04/18 01:31:14	1.3
  @@ -1,13 +1,13 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CancelTag.java,v 1.2 2001/01/08 21:36:04 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/08 21:36:04 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CancelTag.java,v 1.3 2001/04/18 01:31:14 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/04/18 01:31:14 $
    *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -29,7 +29,7 @@
    *    Alternately, this acknowlegement may appear in the software itself,
    *    if and wherever such third-party acknowlegements normally appear.
    *
  - * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
    *    Foundation" must not be used to endorse or promote products derived
    *    from this software without prior written permission. For written
    *    permission, please contact apache@apache.org.
  @@ -68,13 +68,14 @@
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.JspWriter;
   import org.apache.struts.util.MessageResources;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Tag for input fields of type "cancel".
    *
    * @author Jeff Hutchinson
  - * @version $Revision: 1.2 $ $Date: 2001/01/08 21:36:04 $
  + * @version $Revision: 1.3 $ $Date: 2001/04/18 01:31:14 $
    */
   
   public class CancelTag extends BaseHandlerTag {
  @@ -82,6 +83,7 @@
   
       // ----------------------------------------------------- Instance Variables
   
  +
       /**
        * The message resources for this package.
        */
  @@ -96,6 +98,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The value of the button label.
        */
       protected String value = null;
  @@ -137,64 +145,81 @@
           this.value = value;
       }
   
  +
       // --------------------------------------------------------- Public Methods
   
  +
       /**
        * Process the start of this tag.
        * @exception JspException if a JSP exception has occurred
        */
       public int doStartTag() throws JspException {
  +
           // Do nothing until doEndTag() is called
  +        this.text = null;
           return (EVAL_BODY_TAG);
  +
       }
   
  +
       /**
  +     * Save the associated label from the body content.
  +     *
  +     * @exception JspException if a JSP exception has occurred
  +     */
  +    public int doAfterBody() throws JspException {
  +
  +        if (bodyContent != null) {
  +            String value = bodyContent.getString().trim();
  +            if (value.length() > 0)
  +                text = value;
  +        }
  +        return (SKIP_BODY);
  +
  +    }
  +
  +
  +    /**
        * Process the end of this tag.
        * @exception JspException if a JSP exception has occurred
        */
       public int doEndTag() throws JspException {
   
  -    // Acquire the label value we will be generating
  -    String label = value;
  -    if ((label == null) && (bodyContent != null))
  -        label = bodyContent.getString().trim();
  -    if ((label == null) || (label.trim().length() < 1))
  -        label = "Cancel";
  -
  -    // Generate an HTML element
  -    StringBuffer results = new StringBuffer();
  -    results.append("<input type=\"submit\"");
  -    results.append(" name=\"");
  -    results.append(property);
  -    results.append("\"");
  -    if (accesskey != null) {
  -	results.append(" accesskey=\"");
  -	results.append(accesskey);
  -	results.append("\"");
  -    }
  -    if (tabindex != null) {
  -	results.append(" tabindex=\"");
  -	results.append(tabindex);
  -	results.append("\"");
  -    }
  -    results.append(" value=\"");
  -    results.append(label);
  -    results.append("\"");
  -    results.append(prepareEventHandlers());
  -    results.append(prepareStyles());
  -    results.append(">");
  -
  -    // Render this element to our writer
  -    JspWriter writer = pageContext.getOut();
  -    try {
  -        writer.print(results.toString());
  -    }
  -    catch (IOException e) {
  -        throw new JspException
  -        (messages.getMessage("common.io", e.toString()));
  -    }
  +        // Acquire the label value we will be generating
  +        String label = value;
  +        if ((label == null) && (text != null))
  +            label = text;
  +        if ((label == null) || (label.trim().length() < 1))
  +            label = "Cancel";
  +
  +        // Generate an HTML element
  +        StringBuffer results = new StringBuffer();
  +        results.append("<input type=\"submit\"");
  +        results.append(" name=\"");
  +        results.append(property);
  +        results.append("\"");
  +        if (accesskey != null) {
  +            results.append(" accesskey=\"");
  +            results.append(accesskey);
  +            results.append("\"");
  +        }
  +        if (tabindex != null) {
  +            results.append(" tabindex=\"");
  +            results.append(tabindex);
  +            results.append("\"");
  +        }
  +        results.append(" value=\"");
  +        results.append(label);
  +        results.append("\"");
  +        results.append(prepareEventHandlers());
  +        results.append(prepareStyles());
  +        results.append(">");
  +
  +        // Render this element to our writer
  +        ResponseUtils.write(pageContext, results.toString());
   
  -    return (EVAL_PAGE);
  +        // Evaluate the remainder of this page
  +        return (EVAL_PAGE);
   
       }
   
  @@ -206,6 +231,7 @@
   
   	super.release();
   	property = Constants.CANCEL_PROPERTY;
  +        text = null;
   	value = null;
   
       }
  
  
  
  1.4       +19 -6     jakarta-struts/src/share/org/apache/struts/taglib/html/CheckboxTag.java
  
  Index: CheckboxTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CheckboxTag.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CheckboxTag.java	2001/03/10 23:27:31	1.3
  +++ CheckboxTag.java	2001/04/18 01:31:14	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CheckboxTag.java,v 1.3 2001/03/10 23:27:31 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2001/03/10 23:27:31 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/CheckboxTag.java,v 1.4 2001/04/18 01:31:14 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/04/18 01:31:14 $
    *
    * ====================================================================
    *
  @@ -76,7 +76,7 @@
    * Tag for input fields of type "checkbox".
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2001/03/10 23:27:31 $
  + * @version $Revision: 1.4 $ $Date: 2001/04/18 01:31:14 $
    */
   
   public class CheckboxTag extends BaseHandlerTag {
  @@ -113,6 +113,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The server value for this option.
        */
       protected String value = null;
  @@ -215,6 +221,7 @@
           ResponseUtils.write(pageContext, results.toString());
   
   	// Continue processing this page
  +        this.text = null;
   	return (EVAL_BODY_TAG);
   
       }
  @@ -222,7 +229,7 @@
   
   
       /**
  -     * Optionally render the associated label from the body content.
  +     * Save the associated label from the body content.
        *
        * @exception JspException if a JSP exception has occurred
        */
  @@ -231,7 +238,7 @@
           if (bodyContent != null) {
               String value = bodyContent.getString().trim();
               if (value.length() > 0)
  -                ResponseUtils.write(pageContext, value);
  +                text = value;
           }
           return (SKIP_BODY);
   
  @@ -245,6 +252,11 @@
        */
       public int doEndTag() throws JspException {
   
  +        // Render any description for this checkbox
  +        if (text != null)
  +            ResponseUtils.write(pageContext, text);
  +
  +        // Evaluate the remainder of this page
           return (EVAL_PAGE);
   
       }
  @@ -258,6 +270,7 @@
   	super.release();
   	name = Constants.BEAN_KEY;
   	property = null;
  +        text = null;
   	value = null;
   
       }
  
  
  
  1.8       +29 -29    jakarta-struts/src/share/org/apache/struts/taglib/html/LinkTag.java
  
  Index: LinkTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/LinkTag.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- LinkTag.java	2001/04/03 18:06:19	1.7
  +++ LinkTag.java	2001/04/18 01:31:15	1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/LinkTag.java,v 1.7 2001/04/03 18:06:19 craigmcc Exp $
  - * $Revision: 1.7 $
  - * $Date: 2001/04/03 18:06:19 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/LinkTag.java,v 1.8 2001/04/18 01:31:15 craigmcc Exp $
  + * $Revision: 1.8 $
  + * $Date: 2001/04/18 01:31:15 $
    *
    * ====================================================================
    *
  @@ -80,18 +80,28 @@
   import org.apache.struts.util.MessageResources;
   import org.apache.struts.util.PropertyUtils;
   import org.apache.struts.util.RequestUtils;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Generate a URL-encoded hyperlink to the specified URI.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.7 $ $Date: 2001/04/03 18:06:19 $
  + * @version $Revision: 1.8 $ $Date: 2001/04/18 01:31:15 $
    */
   
   public class LinkTag extends BaseHandlerTag {
   
   
  +    // ----------------------------------------------------- Instance Variables
  +
  +
  +    /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
       // ------------------------------------------------------------- Properties
   
   
  @@ -334,17 +344,10 @@
   	results.append(">");
   
   	// Print this element to our output writer
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.print(results.toString());
  -	} catch (IOException e) {
  -            pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  -                                     PageContext.REQUEST_SCOPE);
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        ResponseUtils.write(pageContext, results.toString());
   
   	// Evaluate the body of this tag
  +        this.text = null;
   	return (EVAL_BODY_TAG);
   
       }
  @@ -352,20 +355,16 @@
   
   
       /**
  -     * Render the body content of this hyperlink.
  +     * Save the associated label from the body content.
        *
        * @exception JspException if a JSP exception has occurred
        */
       public int doAfterBody() throws JspException {
   
           if (bodyContent != null) {
  -            JspWriter writer = bodyContent.getEnclosingWriter();
  -            try {
  -                writer.print(bodyContent.getString().trim());
  -            } catch (IOException e) {
  -                throw new JspException
  -                    (messages.getMessage("common.io", e.toString()));
  -            }
  +            String value = bodyContent.getString().trim();
  +            if (value.length() > 0)
  +                text = value;
           }
           return (SKIP_BODY);
   
  @@ -379,16 +378,16 @@
        */
       public int doEndTag() throws JspException {
   
  +        // Prepare the textual content and ending element of this hyperlink
  +        StringBuffer results = new StringBuffer();
  +        if (text != null)
  +            results.append(text);
  +        results.append("</a>");
   
  -	// Print the ending element to our output writer
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.print("</a>");
  -	} catch (IOException e) {
  -	    throw new JspException
  -	        (messages.getMessage("common.io", e.toString()));
  -	}
  +	// Render the remainder to the output stream
  +        ResponseUtils.write(pageContext, results.toString());
   
  +        // Evaluate the remainder of this page
   	return (EVAL_PAGE);
   
       }
  @@ -413,6 +412,7 @@
   	property = null;
           scope = null;
   	target = null;
  +        text = null;
           transaction = false;
   
       }
  
  
  
  1.5       +6 -11     jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java
  
  Index: MultiboxTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MultiboxTag.java	2001/04/03 19:23:15	1.4
  +++ MultiboxTag.java	2001/04/18 01:31:15	1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java,v 1.4 2001/04/03 19:23:15 craigmcc Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/04/03 19:23:15 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/MultiboxTag.java,v 1.5 2001/04/18 01:31:15 craigmcc Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/04/18 01:31:15 $
    *
    * ====================================================================
    *
  @@ -83,7 +83,7 @@
    *
    * @author Ralph Schaer
    * @author Craig R. McClanahan
  - * @version $Revision: 1.4 $ $Date: 2001/04/03 19:23:15 $
  + * @version $Revision: 1.5 $ $Date: 2001/04/18 01:31:15 $
    */
   
   public class MultiboxTag extends BaseHandlerTag {
  @@ -191,6 +191,7 @@
       public int doStartTag() throws JspException {
   
   	// Defer processing until the end of this tag is encountered
  +        this.constant = null;
   	return (EVAL_BODY_TAG);
   
       }
  @@ -281,13 +282,7 @@
   	results.append(">");
   
           // Render this element to our response
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.println(results.toString());
  -	} catch (IOException e) {
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        ResponseUtils.write(pageContext, results.toString());
   
   	// Continue evaluating this page
   	return (EVAL_PAGE);
  
  
  
  1.3       +37 -24    jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java
  
  Index: RadioTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RadioTag.java	2001/01/08 21:36:09	1.2
  +++ RadioTag.java	2001/04/18 01:31:15	1.3
  @@ -1,13 +1,13 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java,v 1.2 2001/01/08 21:36:09 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/08 21:36:09 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/RadioTag.java,v 1.3 2001/04/18 01:31:15 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/04/18 01:31:15 $
    *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -29,7 +29,7 @@
    *    Alternately, this acknowlegement may appear in the software itself,
    *    if and wherever such third-party acknowlegements normally appear.
    *
  - * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
    *    Foundation" must not be used to endorse or promote products derived
    *    from this software without prior written permission. For written
    *    permission, please contact apache@apache.org.
  @@ -70,13 +70,14 @@
   import javax.servlet.jsp.JspWriter;
   import org.apache.struts.util.BeanUtils;
   import org.apache.struts.util.MessageResources;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Tag for input fields of type "radio".
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/01/08 21:36:09 $
  + * @version $Revision: 1.3 $ $Date: 2001/04/18 01:31:15 $
    */
   
   public class RadioTag extends BaseHandlerTag {
  @@ -113,6 +114,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The server value for this option.
        */
       protected String value = null;
  @@ -223,39 +230,44 @@
   	results.append(">");
   
   	// Print this field to our output writer
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.print(results.toString());
  -	} catch (IOException e) {
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        ResponseUtils.write(pageContext, results.toString());
   
   	// Continue processing this page
  +        this.text = null;
   	return (EVAL_BODY_TAG);
   
       }
   
   
       /**
  +     * Save the associated label from the body content.
  +     *
  +     * @exception JspException if a JSP exception has occurred
  +     */
  +    public int doAfterBody() throws JspException {
  +
  +        if (bodyContent != null) {
  +            String value = bodyContent.getString().trim();
  +            if (value.length() > 0)
  +                text = value;
  +        }
  +        return (SKIP_BODY);
  +
  +    }
  +
  +
  +    /**
        * Optionally render the associated label from the body content.
        *
        * @exception JspException if a JSP exception has occurred
        */
       public int doEndTag() throws JspException {
  -
  -	if (bodyContent == null)
  -	    return (EVAL_PAGE);
   
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.println(bodyContent.getString().trim());
  -	} catch (IOException e) {
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        // Render any description for this radio button
  +        if (text != null)
  +            ResponseUtils.write(pageContext, text);
   
  -	// Continue evaluating this page
  +	// Evaluate the remainder of this page
   	return (EVAL_PAGE);
   
       }
  @@ -269,6 +281,7 @@
   	super.release();
   	name = Constants.BEAN_KEY;
   	property = null;
  +        text = null;
   	value = null;
   
       }
  
  
  
  1.3       +36 -15    jakarta-struts/src/share/org/apache/struts/taglib/html/ResetTag.java
  
  Index: ResetTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ResetTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ResetTag.java	2001/01/08 21:36:10	1.2
  +++ ResetTag.java	2001/04/18 01:31:15	1.3
  @@ -1,13 +1,13 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ResetTag.java,v 1.2 2001/01/08 21:36:10 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/08 21:36:10 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/ResetTag.java,v 1.3 2001/04/18 01:31:15 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/04/18 01:31:15 $
    *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -29,7 +29,7 @@
    *    Alternately, this acknowlegement may appear in the software itself,
    *    if and wherever such third-party acknowlegements normally appear.
    *
  - * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
    *    Foundation" must not be used to endorse or promote products derived
    *    from this software without prior written permission. For written
    *    permission, please contact apache@apache.org.
  @@ -69,13 +69,14 @@
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.JspWriter;
   import org.apache.struts.util.MessageResources;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Tag for input fields of type "reset".
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/01/08 21:36:10 $
  + * @version $Revision: 1.3 $ $Date: 2001/04/18 01:31:15 $
    */
   
   public class ResetTag extends BaseHandlerTag {
  @@ -98,6 +99,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The value of the button label.
        */
       protected String value = null;
  @@ -161,6 +168,7 @@
       public int doStartTag() throws JspException {
   
   	// Do nothing until doEndTag() is called
  +        this.text = null;
   	return (EVAL_BODY_TAG);
   
       }
  @@ -168,6 +176,23 @@
   
   
       /**
  +     * Save the associated label from the body content.
  +     *
  +     * @exception JspException if a JSP exception has occurred
  +     */
  +    public int doAfterBody() throws JspException {
  +
  +        if (bodyContent != null) {
  +            String value = bodyContent.getString().trim();
  +            if (value.length() > 0)
  +                text = value;
  +        }
  +        return (SKIP_BODY);
  +
  +    }
  +
  +
  +    /**
        * Process the end of this tag.
        *
        * @exception JspException if a JSP exception has occurred
  @@ -176,8 +201,8 @@
   
   	// Acquire the label value we will be generating
   	String label = value;
  -	if ((label == null) && (bodyContent != null))
  -	    label = bodyContent.getString().trim();
  +	if ((label == null) && (text != null))
  +	    label = text;
   	if ((label == null) || (label.length() < 1))
   	    label = "Reset";
   
  @@ -204,14 +229,9 @@
   	results.append(">");
   
   	// Render this element to our writer
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.print(results.toString());
  -	} catch (IOException e) {
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        ResponseUtils.write(pageContext, results.toString());
   
  +        // Evaluate the remainder of this page
   	return (EVAL_PAGE);
   
       }
  @@ -224,6 +244,7 @@
   
   	super.release();
   	name = "reset";
  +        text = null;
   	value = null;
   
       }
  
  
  
  1.3       +36 -15    jakarta-struts/src/share/org/apache/struts/taglib/html/SubmitTag.java
  
  Index: SubmitTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/SubmitTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SubmitTag.java	2001/01/08 21:36:11	1.2
  +++ SubmitTag.java	2001/04/18 01:31:15	1.3
  @@ -1,13 +1,13 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/SubmitTag.java,v 1.2 2001/01/08 21:36:11 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/01/08 21:36:11 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/SubmitTag.java,v 1.3 2001/04/18 01:31:15 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/04/18 01:31:15 $
    *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -29,7 +29,7 @@
    *    Alternately, this acknowlegement may appear in the software itself,
    *    if and wherever such third-party acknowlegements normally appear.
    *
  - * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
    *    Foundation" must not be used to endorse or promote products derived
    *    from this software without prior written permission. For written
    *    permission, please contact apache@apache.org.
  @@ -69,13 +69,14 @@
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.JspWriter;
   import org.apache.struts.util.MessageResources;
  +import org.apache.struts.util.ResponseUtils;
   
   
   /**
    * Tag for input fields of type "submit".
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/01/08 21:36:11 $
  + * @version $Revision: 1.3 $ $Date: 2001/04/18 01:31:15 $
    */
   
   public class SubmitTag extends BaseHandlerTag {
  @@ -98,6 +99,12 @@
   
   
       /**
  +     * The body content of this tag (if any).
  +     */
  +    protected String text = null;
  +
  +
  +    /**
        * The value of the button label.
        */
       protected String value = null;
  @@ -161,6 +168,7 @@
       public int doStartTag() throws JspException {
   
   	// Do nothing until doEndTag() is called
  +        this.text = null;
   	return (EVAL_BODY_TAG);
   
       }
  @@ -168,6 +176,23 @@
   
   
       /**
  +     * Save the associated label from the body content.
  +     *
  +     * @exception JspException if a JSP exception has occurred
  +     */
  +    public int doAfterBody() throws JspException {
  +
  +        if (bodyContent != null) {
  +            String value = bodyContent.getString().trim();
  +            if (value.length() > 0)
  +                text = value;
  +        }
  +        return (SKIP_BODY);
  +
  +    }
  +
  +
  +    /**
        * Process the end of this tag.
        *
        * @exception JspException if a JSP exception has occurred
  @@ -176,8 +201,8 @@
   
   	// Acquire the label value we will be generating
   	String label = value;
  -	if ((label == null) && (bodyContent != null))
  -	    label = bodyContent.getString().trim();
  +	if ((label == null) && (text != null))
  +	    label = text;
   	if ((label == null) || (label.length() < 1))
   	    label = "Submit";
   
  @@ -204,14 +229,9 @@
   	results.append(">");
   
   	// Render this element to our writer
  -	JspWriter writer = pageContext.getOut();
  -	try {
  -	    writer.print(results.toString());
  -	} catch (IOException e) {
  -	    throw new JspException
  -		(messages.getMessage("common.io", e.toString()));
  -	}
  +        ResponseUtils.write(pageContext, results.toString());
   
  +        // Evaluate the remainder of this page
   	return (EVAL_PAGE);
   
       }
  @@ -224,6 +244,7 @@
   
   	super.release();
   	property = "submit";
  +        text = null;
   	value = null;
   
       }