arron 02/02/19 17:30:23 Modified: src/share/org/apache/struts/taglib/nested/html NestedLinkTag.java Log: The options that the nested tags set have to be explicit choices as it confuses the underlying tag. Revision Changes Path 1.3 +38 -15 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.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- NestedLinkTag.java 22 Jan 2002 03:30:50 -0000 1.2 +++ NestedLinkTag.java 20 Feb 2002 01:30:23 -0000 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedLinkTag.java,v 1.2 2002/01/22 03:30:50 arron Exp $ - * $Revision: 1.2 $ - * $Date: 2002/01/22 03:30:50 $ + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/nested/html/NestedLinkTag.java,v 1.3 2002/02/20 01:30:23 arron Exp $ + * $Revision: 1.3 $ + * $Date: 2002/02/20 01:30:23 $ * ==================================================================== * * The Apache Software License, Version 1.1 @@ -68,7 +68,7 @@ * NestedLinkTag. * @author Arron Bates * @since Struts 1.1 - * @version $Revision: 1.2 $ $Date: 2002/01/22 03:30:50 $ + * @version $Revision: 1.3 $ $Date: 2002/02/20 01:30:23 $ */ public class NestedLinkTag extends LinkTag implements NestedNameSupport { @@ -80,22 +80,45 @@ */ public int doStartTag() throws JspException { - /* if no paramName is supplied, we'll default to the current */ + /* decide the incoming options. Always two there are */ + boolean doProperty = (origProperty != null && origProperty.length() > 0); + boolean doParam = (origParam != null && origParam.length() > 0); + + /* if paramId is the way, set the name according to our bean */ if (getParamName() == null || "".equals(getParamName().trim())) { - setParamName(getName()); + if (doParam) { + setParamName(getName()); + } + } + + /* set name */ + if (doProperty) { + super.setName(NestedPropertyHelper.getNestedNameProperty(this)); } /* singleton tag implementations will need the original property to be set before running */ - super.setProperty(originalProperty); - super.setParamProperty(originalParamProperty); + if (doProperty) { + super.setProperty(origProperty); + } + if (doParam) { + super.setParamProperty(origParam); + } /* let the NestedHelper set the properties it can */ isNesting = true; Tag pTag = NestedPropertyHelper.getNestingParentTag(this); - setProperty(NestedPropertyHelper.getNestedProperty(getProperty(), pTag)); - setParamProperty(NestedPropertyHelper.getNestedProperty(getParamProperty(), - pTag)); + + /* set the nested property value */ + if (doProperty) { + setProperty(NestedPropertyHelper.getNestedProperty(getProperty(), pTag)); + } + + /* set the nested version of the paramId */ + if (doParam) { + setParamProperty(NestedPropertyHelper.getNestedProperty(getParamProperty(),pTag)); + } + isNesting = false; /* do the tag */ @@ -114,7 +137,7 @@ super.setProperty(newProperty); /* if it's the JSP setting it, remember the value */ if (!isNesting) { - originalProperty = newProperty; + origProperty = newProperty; } } @@ -128,12 +151,12 @@ super.setParamProperty(newParamProperty); /* if it's the JSP setting it, remember the value */ if (!isNesting) { - originalParamProperty = newParamProperty; + origParam = newParamProperty; } } /* hold original property */ - private String originalProperty = null; - private String originalParamProperty = null; + private String origProperty = null; + private String origParam = null; private boolean isNesting = false; }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>