[ http://issues.apache.org/struts/browse/STR-1084?page=all ] David Evans resolved STR-1084: ------------------------------
Resolution: Fixed > Nested tags picks up wrong bean for values > ------------------------------------------ > > Key: STR-1084 > URL: http://issues.apache.org/struts/browse/STR-1084 > Project: Struts Action 1 > Type: Bug > Components: Taglibs > Versions: 1.1 Beta 3 > Environment: Operating System: All > Platform: All > Reporter: David Morris > Fix For: 1.1 Family > > I located the source of the problem, which is caused > by a change to the nested tags. The code causing the error is this block > found in the NestedPropertyHelper.getNestedNameProperty method. > > The name property for any tag that extends > org.apache.struts.taglib.html.BaseFieldTag > is initialized to a constant value of > Constants.BEAN_KEY. That means the test for > null is never met so the innermost nested > tag's (which is the nested:text tag in this case) > name is used in some cases. > > Removing this code should fix my case, but > I suspect that there was a reason for this > change, which was made shortly after beta 2 > was released. Here is a patch that is less > drastic than the removal. This patch makes > the minimal change, but there are still cases > in the existing code where errors are not > dealt with that should probably be fixed. > Index: NestedPropertyHelper.java > =================================================================== > RCS file: /home/cvspublic/jakarta- > struts/src/share/org/apache/struts/taglib/nested/NestedPropertyHelper.java,v > retrieving revision 1.11 > diff -u -r1.11 NestedPropertyHelper.java > --- NestedPropertyHelper.java 16 Nov 2002 07:07:07 -0000 1.11 > +++ NestedPropertyHelper.java 4 Jan 2003 07:14:13 -0000 > @@ -65,6 +65,7 @@ > import javax.servlet.jsp.tagext.Tag; > > import org.apache.struts.taglib.html.FormTag; > +import org.apache.struts.taglib.html.Constants; > > /** A simple helper class that does everything that needs to be done to get > the > * nested tag extension to work. Knowing what tags can define the lineage of > @@ -211,11 +212,17 @@ > Tag namedTag = (Tag)tag; > > // see if we're already in the right location > + String defaultName = null; > if (namedTag instanceof NestedNameSupport) { > String name = ((NestedNameSupport)namedTag).getName(); > - // return if we already have a name > + // return if we already have a name and not just default > if (name != null) { > - return name; > + if (name.equals(Constants.BEAN_KEY)) { > + defaultName = name; > + } > + else { > + return name; > + } > } > } > > @@ -228,7 +235,11 @@ > !(namedTag instanceof NestedParentSupport) ); > > if (namedTag == null) { > - // need to spit some chips > + // Return default name because parent is not more specific. > + if (defaultName != null) { > + return defaultName; > + } > + // need to spit some chips > } > > String nameTemp = null; -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]