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...@locus.apache.org on 2000/12/30 03:19:30 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/form LinkTag.java

craigmcc    00/12/29 18:19:30

  Modified:    src/share/org/apache/struts/taglib/form LinkTag.java
  Log:
  When processing a Map containing parameters to be added to the URL,
  treat a null value (which is legal in Java2 collections) to mean "no
  value specified".  This will cause "name=" to be added to the URL.
  
  Submitted by:	Oleg Alexeev <go...@penza.net>
  
  Revision  Changes    Path
  1.4       +15 -5     jakarta-struts/src/share/org/apache/struts/taglib/form/LinkTag.java
  
  Index: LinkTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/form/LinkTag.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LinkTag.java	2000/11/18 22:10:56	1.3
  +++ LinkTag.java	2000/12/30 02:19:30	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/form/LinkTag.java,v 1.3 2000/11/18 22:10:56 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/11/18 22:10:56 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/form/LinkTag.java,v 1.4 2000/12/30 02:19:30 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2000/12/30 02:19:30 $
    *
    * ====================================================================
    *
  @@ -85,7 +85,7 @@
    * Generate a URL-encoded hyperlink to the specified URI.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2000/11/18 22:10:56 $
  + * @version $Revision: 1.4 $ $Date: 2000/12/30 02:19:30 $
    */
   
   public class LinkTag extends TagSupport {
  @@ -406,7 +406,17 @@
   	while (keys.hasNext()) {
   	    String key = (String) keys.next();
   	    Object value = map.get(key);
  -	    if (value instanceof String[]) {
  +            if (value == null) {
  +                if (question)
  +                    sb.append('&');
  +                else {
  +                    sb.append('?');
  +                    question = true;
  +                }
  +                sb.append(key);
  +                sb.append('=');
  +                // Interpret null as "no value specified"
  +	    } else if (value instanceof String[]) {
   		String values[] = (String[]) value;
   		for (int i = 0; i < values.length; i++) {
   		    if (question)