martinc 02/01/27 22:07:38
Modified: src/share/org/apache/struts/taglib/html FormTag.java
Log:
Preserve values of 'name', 'scope' and 'type' attributes so that tag reuse
works correctly, according to the JSP 1.2 spec.
PR: 5726
Submitted by: Alex Gleyzer
Revision Changes Path
1.18 +53 -12
jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java
Index: FormTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- FormTag.java 17 Jan 2002 00:15:05 -0000 1.17
+++ FormTag.java 28 Jan 2002 06:07:38 -0000 1.18
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v 1.17
2002/01/17 00:15:05 craigmcc Exp $
- * $Revision: 1.17 $
- * $Date: 2002/01/17 00:15:05 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v 1.18
2002/01/28 06:07:38 martinc Exp $
+ * $Revision: 1.18 $
+ * $Date: 2002/01/28 06:07:38 $
*
* ====================================================================
*
@@ -88,7 +88,7 @@
* properties correspond to the various fields of the form.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.17 $ $Date: 2002/01/17 00:15:05 $
+ * @version $Revision: 1.18 $ $Date: 2002/01/28 06:07:38 $
*/
public class FormTag extends TagSupport {
@@ -114,14 +114,6 @@
*/
protected String enctype = null;
- public String getEnctype() {
- return (this.enctype);
- }
-
- public void setEnctype(String enctype) {
- this.enctype = enctype;
- }
-
/**
* The name of the field to receive focus, if any.
@@ -210,6 +202,24 @@
*/
protected String type = null;
+ /**
+ * Temporary copy of the 'name' property, used to ensure we don't
+ * modify tag attributes between uses of the same instance.
+ */
+ private String savedName = null;
+
+ /**
+ * Temporary copy of the 'scope' property, used to ensure we don't
+ * modify tag attributes between uses of the same instance.
+ */
+ private String savedScope = null;
+
+ /**
+ * Temporary copy of the 'type' property, used to ensure we don't
+ * modify tag attributes between uses of the same instance.
+ */
+ private String savedType = null;
+
// ------------------------------------------------------------- Properties
@@ -235,6 +245,25 @@
}
+ /**
+ * Return the content encoding used when submitting this form.
+ */
+ public String getEnctype() {
+
+ return (this.enctype);
+
+ }
+
+ /**
+ * Set the content encoding used when submitting this form.
+ *
+ * @param enctype The new content encoding
+ */
+ public void setEnctype(String enctype) {
+
+ this.enctype = enctype;
+
+ }
/**
* Return the focus field name for this form.
@@ -489,6 +518,12 @@
*/
public int doStartTag() throws JspException {
+ // Save the name, scope and type property values so that we can restore
+ // them in doEndTag(). Needed to allow tag reuse to work correctly.
+ savedName = name;
+ savedScope = scope;
+ savedType = type;
+
// Look up the form bean name, scope, and type if necessary
lookup();
@@ -638,6 +673,12 @@
throw new JspException
(messages.getMessage("common.io", e.toString()));
}
+
+ // Restore original property values used to invoke this tag. Needed
+ // for tag reuse to work correctly.
+ name = savedName;
+ scope = savedScope;
+ type = savedType;
// Continue processing this page
return (EVAL_PAGE);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>