You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ar...@apache.org on 2003/02/28 06:15:07 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/nested/html NestedHiddenTag.java NestedLinkTag.java NestedOptionsCollectionTag.java NestedMessagesTag.java NestedPasswordTag.java NestedErrorsTag.java NestedSelectTag.java NestedOptionsTag.java NestedMultiboxTag.java NestedRadioTag.java NestedCheckboxTag.java NestedTextTag.java NestedFileTag.java NestedFormTag.java NestedImageTag.java NestedSubmitTag.java NestedTextareaTag.java NestedImgTag.java
arron 2003/02/27 21:15:07
Modified: src/share/org/apache/struts/taglib/nested/html
NestedHiddenTag.java NestedLinkTag.java
NestedOptionsCollectionTag.java
NestedMessagesTag.java NestedPasswordTag.java
NestedErrorsTag.java NestedSelectTag.java
NestedOptionsTag.java NestedMultiboxTag.java
NestedRadioTag.java NestedCheckboxTag.java
NestedTextTag.java NestedFileTag.java
NestedFormTag.java NestedImageTag.java
NestedSubmitTag.java NestedTextareaTag.java
NestedImgTag.java
Log:
Html Nested Tag Clases
- Most importantly, updated the Copyright to
include 2003.
- Secondly, rejig of the nested tags to allow
them to dance with Tomcat 4.1.18
Revision Changes Path
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedHiddenTag.java
Index: NestedHiddenTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedHiddenTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedHiddenTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedHiddenTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.HiddenTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.8 +57 -66 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedLinkTag.java
Index: NestedLinkTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedLinkTag.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- NestedLinkTag.java 8 Dec 2002 06:54:51 -0000 1.7
+++ NestedLinkTag.java 28 Feb 2003 05:15:06 -0000 1.8
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,8 +59,8 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.Tag;
import org.apache.struts.taglib.html.LinkTag;
import org.apache.struts.taglib.nested.NestedNameSupport;
@@ -81,84 +81,75 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ origName = super.getName();
+ origProperty = super.getProperty();
+ origParamProperty = super.getParamProperty();
/* decide the incoming options. Always two there are */
boolean doProperty = (origProperty != null && origProperty.length() > 0);
- boolean doParam = (origParam != null && origParam.length() > 0);
+ boolean doParam = (origParamProperty != null && origParamProperty.length() > 0);
- /* if paramId is the way, set the name according to our bean */
- if (getParamName() == null || "".equals(getParamName().trim())) {
- if (doParam) {
- setParamName(NestedPropertyHelper.getNestedNameProperty(this));
- }
- }
-
- /* set name */
- if (doProperty) {
- super.setName(NestedPropertyHelper.getNestedNameProperty(this));
- }
-
- /* singleton tag implementations will need the original property to be
- set before running */
- if (doProperty) {
- super.setProperty(origProperty);
- }
- if (doParam) {
- super.setParamProperty(origParam);
- }
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- Tag pTag = NestedPropertyHelper.getNestingParentTag(this);
-
- /* set the nested property value */
- if (doProperty) {
- setProperty(NestedPropertyHelper.getNestedProperty(getProperty(), pTag));
+ boolean hasName = (getName() != null && getName().trim().length() > 0);
+ String currentName;
+ if (hasName) {
+ currentName = getName();
+ } else {
+ currentName = NestedPropertyHelper.getCurrentName(request, this);
+ }
+ // set the bean name
+ super.setName(currentName);
+
+ // set property details
+ if (doProperty && !hasName) {
+ super.setProperty(NestedPropertyHelper.getAdjustedProperty(request, origProperty));
}
-
- /* set the nested version of the paramId */
+ // do the param property details
if (doParam) {
- setParamProperty(NestedPropertyHelper.getNestedProperty(getParamProperty(),pTag));
+ super.setName(null);
+ super.setParamName(currentName);
+ super.setParamProperty(NestedPropertyHelper.getAdjustedProperty(request, origParamProperty));
}
-
- isNesting = false;
-
+
/* do the tag */
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- origProperty = newProperty;
- }
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(origName);
+ setProperty(origProperty);
+ setParamProperty(origParamProperty);
+
+ // continue
+ return i;
}
- /** For the same reasons as the above method, we have to remember this
- * property to keep things correct here also.
- *
- * @param newParamProperty new property value
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setParamProperty(String newParamProperty) {
- /* let the real tag do its thang */
- super.setParamProperty(newParamProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- origParam = newParamProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ origName = null;
+ origProperty = null;
+ origParamProperty = null;
}
+
/* hold original property */
+ private String origName = null;
private String origProperty = null;
- private String origParam = null;
- private boolean isNesting = false;
+ private String origParamProperty = null;
}
1.4 +44 -32 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedOptionsCollectionTag.java
Index: NestedOptionsCollectionTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedOptionsCollectionTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NestedOptionsCollectionTag.java 16 Nov 2002 04:38:36 -0000 1.3
+++ NestedOptionsCollectionTag.java 28 Feb 2003 05:15:06 -0000 1.4
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,11 +59,12 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.OptionsCollectionTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedPropertySupport;
/**
* NestedOptionsCollectionTag.
@@ -72,7 +73,7 @@
* @version $Revision$
*/
public class NestedOptionsCollectionTag extends OptionsCollectionTag
- implements NestedPropertySupport {
+ implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -81,37 +82,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +44 -32 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedMessagesTag.java
Index: NestedMessagesTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedMessagesTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedMessagesTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedMessagesTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,11 +59,12 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.MessagesTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedPropertySupport;
/**
* NestedMessagesTag.
@@ -72,7 +73,7 @@
* @since Struts 1.1
* @version $Revision$ $Date$
*/
-public class NestedMessagesTag extends MessagesTag implements NestedPropertySupport {
+public class NestedMessagesTag extends MessagesTag implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -81,37 +82,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedPasswordTag.java
Index: NestedPasswordTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedPasswordTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedPasswordTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedPasswordTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.PasswordTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +44 -31 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedErrorsTag.java
Index: NestedErrorsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedErrorsTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedErrorsTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedErrorsTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,11 +59,12 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.ErrorsTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedPropertySupport;
/**
* NestedErrorsTag.
@@ -72,7 +73,7 @@
* @since Struts 1.1
* @version $Revision$ $Date$
*/
-public class NestedErrorsTag extends ErrorsTag implements NestedPropertySupport {
+public class NestedErrorsTag extends ErrorsTag implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -81,36 +82,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedSelectTag.java
Index: NestedSelectTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedSelectTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedSelectTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedSelectTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.SelectTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.6 +52 -51 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedOptionsTag.java
Index: NestedOptionsTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedOptionsTag.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- NestedOptionsTag.java 16 Nov 2002 04:38:36 -0000 1.5
+++ NestedOptionsTag.java 28 Feb 2003 05:15:06 -0000 1.6
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,9 +59,10 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.Tag;
+import org.apache.struts.taglib.html.Constants;
import org.apache.struts.taglib.html.OptionsTag;
import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
@@ -81,66 +82,66 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+ originalLabelProperty = getLabelProperty();
- /* singleton tag implementations will need the original properties to be
- set before running */
- super.setProperty(originalProperty);
- super.setLabelProperty(originalLabelProperty);
- super.setName(NestedPropertyHelper.getNestedNameProperty(this));
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- Tag pTag = NestedPropertyHelper.getNestingParentTag(this);
- setProperty(NestedPropertyHelper.getNestedProperty(getProperty(), pTag));
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
- /* only set the label property if we're meant to */
+ // if we have a label property
if (originalLabelProperty != null) {
- setLabelProperty(NestedPropertyHelper.getNestedProperty(getLabelProperty(),
- pTag));
+ // do the label property first
+ if (getName() == null|| Constants.BEAN_KEY.equals(getName())) {
+ super.setLabelProperty(NestedPropertyHelper.getAdjustedProperty(request,
+ originalLabelProperty));
+ } else {
+ super.setLabelProperty(originalLabelProperty);
+ }
}
- /* finished setting, properties can be set as per usual. */
- isNesting = false;
+ // set the other properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* do the tag */
+
+
+ // let the super do it's thing
return super.doStartTag();
}
-
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
- }
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+ setLabelProperty(originalLabelProperty);
+ // continue
+ return i;
+ }
- /** This method is overridden for the same reasons as the
- * <code>setProperty()</code> method above.
- *
- * @param newProperty new value to assign to the "labelProperty" property.
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setLabelProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setLabelProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalLabelProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
+ originalLabelProperty = null;
}
-
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
private String originalLabelProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedMultiboxTag.java
Index: NestedMultiboxTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedMultiboxTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedMultiboxTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedMultiboxTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.MultiboxTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedRadioTag.java
Index: NestedRadioTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedRadioTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedRadioTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedRadioTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.RadioTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +44 -31 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedCheckboxTag.java
Index: NestedCheckboxTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedCheckboxTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedCheckboxTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedCheckboxTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,9 +59,11 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.CheckboxTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
/**
@@ -70,7 +72,7 @@
* @since Struts 1.1
* @version $Revision$ $Date$
*/
-public class NestedCheckboxTag extends CheckboxTag implements org.apache.struts.taglib.nested.NestedNameSupport {
+public class NestedCheckboxTag extends CheckboxTag implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -79,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedTextTag.java
Index: NestedTextTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedTextTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedTextTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedTextTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.TextTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.3 +44 -32 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedFileTag.java
Index: NestedFileTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedFileTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NestedFileTag.java 16 Nov 2002 04:38:36 -0000 1.2
+++ NestedFileTag.java 28 Feb 2003 05:15:06 -0000 1.3
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,11 +59,12 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.FileTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedPropertySupport;
/**
* NestedFileTag.
@@ -71,7 +72,7 @@
* @since Struts 1.1
* @version $Revision$
*/
-public class NestedFileTag extends FileTag implements NestedPropertySupport {
+public class NestedFileTag extends FileTag implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.9 +47 -23 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedFormTag.java
Index: NestedFormTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedFormTag.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- NestedFormTag.java 16 Nov 2002 04:38:36 -0000 1.8
+++ NestedFormTag.java 28 Feb 2003 05:15:06 -0000 1.9
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,9 +63,8 @@
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.FormTag;
-import org.apache.struts.taglib.nested.NestedParentSupport;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedReference;
/**
* NestedFormTag.
@@ -73,20 +72,20 @@
* @since Struts 1.1
* @version $Revision$ $Date$
*/
-public class NestedFormTag extends FormTag implements NestedParentSupport {
+public class NestedFormTag extends FormTag implements NestedNameSupport {
/**
- * The only added property to the class. For use in proper nesting.
- * @return String value of the property and the current index.
+ * Get the string value of the "property" property.
+ * @return the property property
*/
- public String getNestedProperty() {
- return "";
- }
-
public String getProperty() {
return "";
}
+ /**
+ * Setter for the "property" property
+ * @param newProperty new value for the property
+ */
public void setProperty(String newProperty) {}
@@ -96,15 +95,19 @@
* @return int JSP continuation directive.
*/
public int doStartTag() throws JspException {
- /* store original result */
+ // store original result
int temp = super.doStartTag();
- /* set the details */
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
- NestedReference nr = new NestedReference(getBeanName(), getNestedProperty());
- NestedPropertyHelper.setIncludeReference(request, nr);
+ // original nesting details
+ originalNesting = NestedPropertyHelper.getCurrentProperty(request);
+ originalNestingName = NestedPropertyHelper.getCurrentName(request, this);
+
+ // some new details
+ NestedPropertyHelper.setProperty(request, null);
+ NestedPropertyHelper.setName(request, super.getBeanName());
- /* continue */
+ // continue
return temp;
}
@@ -113,14 +116,35 @@
* @return int JSP continuation directive.
*/
public int doEndTag() throws JspException {
- /* store original result */
+ // super result
int temp = super.doEndTag();
- /* all done. clean up */
+ // all done. clean up
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
- NestedPropertyHelper.setIncludeReference(request, null);
+ // reset the original nesting values
+ if (originalNesting == null) {
+ NestedPropertyHelper.deleteReference(request);
+ } else {
+ NestedPropertyHelper.setProperty(request, originalNesting);
+ NestedPropertyHelper.setName(request, originalNestingName);
+ }
- /* return super result */
+ // return the super result
return temp;
}
+
+ /**
+ * Release the tag's resources and reset the values.
+ */
+ public void release() {
+ // let the super release
+ super.release();
+ // reset the original value place holders
+ originalNesting = null;
+ originalNestingName = null;
+ }
+
+ // original nesting environment
+ private String originalNesting = null;
+ private String originalNestingName = null;
}
1.5 +35 -29 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedImageTag.java
Index: NestedImageTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedImageTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedImageTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedImageTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.ImageTag;
@@ -80,37 +81,42 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalProperty = getProperty();
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+ // reset the properties
+ setProperty(originalProperty);
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +35 -29 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedSubmitTag.java
Index: NestedSubmitTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedSubmitTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedSubmitTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedSubmitTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.SubmitTag;
@@ -80,37 +81,42 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalProperty = getProperty();
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+ // reset the properties
+ setProperty(originalProperty);
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
private String originalProperty = null;
- private boolean isNesting = false;
}
1.5 +42 -30 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedTextareaTag.java
Index: NestedTextareaTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedTextareaTag.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NestedTextareaTag.java 16 Nov 2002 04:38:36 -0000 1.4
+++ NestedTextareaTag.java 28 Feb 2003 05:15:06 -0000 1.5
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.TextareaTag;
@@ -80,37 +81,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
1.3 +44 -32 jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedImgTag.java
Index: NestedImgTag.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedImgTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NestedImgTag.java 16 Nov 2002 04:38:36 -0000 1.2
+++ NestedImgTag.java 28 Feb 2003 05:15:06 -0000 1.3
@@ -6,7 +6,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,11 +59,12 @@
*/
package org.apache.struts.taglib.nested.html;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.html.ImgTag;
+import org.apache.struts.taglib.nested.NestedNameSupport;
import org.apache.struts.taglib.nested.NestedPropertyHelper;
-import org.apache.struts.taglib.nested.NestedPropertySupport;
/**
* NestedImgTag, renders the nested version of the <img> tag.
@@ -72,7 +73,7 @@
* @since Struts 1.1
* @version $Revision$
*/
-public class NestedImgTag extends ImgTag implements NestedPropertySupport {
+public class NestedImgTag extends ImgTag implements NestedNameSupport {
/**
* Overriding method of the heart of the matter. Gets the relative property
@@ -81,37 +82,48 @@
* This is in the hands of the super class.
*/
public int doStartTag() throws JspException {
+ // get the original properties
+ originalName = getName();
+ originalProperty = getProperty();
+
+ // request
+ HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
+ // set the properties
+ NestedPropertyHelper.setNestedProperties(request, this);
- /* singleton tag implementations will need the original property to be
- set before running */
- super.setProperty(originalProperty);
-
- /* let the NestedHelper set the properties it can */
- isNesting = true;
- NestedPropertyHelper.setNestedProperties(this);
- isNesting = false;
-
- /* do the tag */
+ // let the super do it's thing
return super.doStartTag();
}
- /** this is overridden so that properties being set by the JSP page aren't
- * written over by those needed by the extension. If the tag instance is
- * re-used by the JSP, the tag can set the property back to that set by the
- * JSP page.
- *
- * @param newProperty new property value
+ /**
+ * Complete the processing of the tag. The nested tags here will restore
+ * all the original value for the tag itself and the nesting context.
+ * @return int to describe the next step for the JSP processor
+ * @throws JspException for the bad things JSP's do
+ */
+ public int doEndTag() throws JspException {
+ // do the super's ending part
+ int i = super.doEndTag();
+
+ // reset the properties
+ setName(originalName);
+ setProperty(originalProperty);
+
+ // continue
+ return i;
+ }
+
+ /**
+ * Release the tag's resources and reset the values.
*/
- public void setProperty(String newProperty) {
- /* let the real tag do its thang */
- super.setProperty(newProperty);
- /* if it's the JSP setting it, remember the value */
- if (!isNesting) {
- originalProperty = newProperty;
- }
+ public void release() {
+ super.release();
+ // reset the originals
+ originalName = null;
+ originalProperty = null;
}
- /* hold original property */
+ /* the usual private member variables */
+ private String originalName = null;
private String originalProperty = null;
- private boolean isNesting = false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org