kinman      01/10/05 15:17:33

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        ForwardGenerator.java
  Log:
  PR: 3779
  
  - Did some code cleanup.
  - Values of <jsp:param> are URL encoded.
  
  Revision  Changes    Path
  1.5       +13 -26    
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ForwardGenerator.java
  
  Index: ForwardGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ForwardGenerator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ForwardGenerator.java     2000/11/30 21:47:52     1.4
  +++ ForwardGenerator.java     2001/10/05 22:17:33     1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ForwardGenerator.java,v
 1.4 2000/11/30 21:47:52 pierred Exp $
  - * $Revision: 1.4 $
  - * $Date: 2000/11/30 21:47:52 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/ForwardGenerator.java,v
 1.5 2001/10/05 22:17:33 kinman Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/10/05 22:17:33 $
    *
    * ====================================================================
    * 
  @@ -63,6 +63,7 @@
   
   import java.util.Hashtable;
   import java.util.Enumeration;
  +import java.net.URLEncoder;
   
   import org.apache.jasper.JasperException;
   import org.apache.jasper.Constants;
  @@ -101,8 +102,7 @@
       }
       
       public void generate(ServletWriter writer, Class phase) {
  -     boolean initial = true;
  -     String sep = "?";       
  +     char sep = '?'; 
           writer.println("if (true) {");
           writer.pushIndent();
           writer.println("out.clear();");
  @@ -113,29 +113,16 @@
            while (en.hasMoreElements()) {
                String key = (String) en.nextElement();
                String []value = (String []) params.get(key);
  -             if (initial == true) {
  -                 sep = "?";
  -                 initial = false;
  -             } else sep = "&";
                
  -             if (value.length == 1 && JspUtil.isExpression(value[0], isXml))
  +             for (int i = 0; i < value.length; i++) {
  +                 String v;
  +                 if (JspUtil.isExpression(value[i], isXml))
  +                     v = JspUtil.getExpr(value[i], isXml);
  +                 else
  +                     v = "\"" + URLEncoder.encode(value[i]) + "\"";
                    writer.println("_jspx_qfStr = _jspx_qfStr + \"" + sep +
  -                                key + "=\" + " + JspUtil.getExpr(value[0], isXml) + 
";");
  -             else {
  -                 if (value.length == 1)
  -                     writer.println("_jspx_qfStr = _jspx_qfStr + \"" + sep +
  -                                    key + "=\" + \"" + value[0] + "\";");           
         
  -                 else {
  -                     for (int i = 0; i < value.length; i++) {
  -                         if (!JspUtil.isExpression(value[i], isXml))
  -                             writer.println("_jspx_qfStr = _jspx_qfStr + \"" + sep +
  -                                            key + "=\" + \"" + value[i] + "\";");
  -                         else
  -                             writer.println("_jspx_qfStr = _jspx_qfStr + \"" + sep +
  -                                            key + "=\" +" + 
JspUtil.getExpr(value[i], isXml)+ ";");
  -                         if (sep.equals("?")) sep = "&";                         
  -                     }
  -                 }
  +                            key + "=\" +" + v + ";");
  +                 sep = '&';                      
                }
            }
        }
  
  
  


Reply via email to