You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by rg...@apache.org on 2013/05/24 16:29:09 UTC

svn commit: r1486076 - /struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java

Author: rgielen
Date: Fri May 24 14:29:09 2013
New Revision: 1486076

URL: http://svn.apache.org/r1486076
Log:
WW-4063
Skipping unneeded translation for included parameters

Modified:
    struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java

Modified: struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java?rev=1486076&r1=1486075&r2=1486076&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java (original)
+++ struts/struts2/branches/STRUTS_2_3_14_X/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java Fri May 24 14:29:09 2013
@@ -241,47 +241,45 @@ public class DefaultUrlHelper implements
 
     private String buildParameterSubstring(String name, String value) {
         StringBuilder builder = new StringBuilder();
-        builder.append(translateAndEncode(name));
+        builder.append(encode(name));
         builder.append('=');
-        builder.append(translateAndEncode(value));
+        builder.append(encode(value));
         return builder.toString();
     }
 
-    /**
-     * Translates any script expressions using {@link com.opensymphony.xwork2.util.TextParseUtil#translateVariables} and
-     * encodes the URL using {@link java.net.URLEncoder#encode} with the encoding specified in the configuration.
-     *
-     * @param input
-     * @return the translated and encoded string
-     */
-    public String translateAndEncode(String input) {
-        String translatedInput = translateVariable(input);
-        try {
-            return URLEncoder.encode(translatedInput, encoding);
-        } catch (UnsupportedEncodingException e) {
-            if (LOG.isWarnEnabled()) {
-                LOG.warn("Could not encode URL parameter '#0', returning value un-encoded", input);
-            }
-            return translatedInput;
-        }
-    }
-
-    public String translateAndDecode(String input) {
-        String translatedInput = translateVariable(input);
-        try {
-            return URLDecoder.decode(translatedInput, encoding);
-        } catch (UnsupportedEncodingException e) {
-            if (LOG.isWarnEnabled()) {
-                LOG.warn("Could not encode URL parameter '#0', returning value un-encoded", input);
-            }
-            return translatedInput;
-        }
-    }
-
-    private String translateVariable(String input) {
-        ValueStack valueStack = ServletActionContext.getContext().getValueStack();
-        return TextParseUtil.translateVariables(input, valueStack);
-    }
+	/**
+	 * Encodes the URL using {@link java.net.URLEncoder#encode} with the encoding specified in the configuration.
+	 *
+	 * @param input the input to encode
+	 * @return the encoded string
+	 */
+	public String encode( String input ) {
+		try {
+			return URLEncoder.encode(input, encoding);
+		} catch (UnsupportedEncodingException e) {
+			if (LOG.isWarnEnabled()) {
+				LOG.warn("Could not encode URL parameter '#0', returning value un-encoded", input);
+			}
+			return input;
+		}
+	}
+
+	/**
+	 * Decodes the URL using {@link java.net.URLDecoder#decode(String, String)} with the encoding specified in the configuration.
+	 *
+	 * @param input the input to decode
+	 * @return the encoded string
+	 */
+	public String decode( String input ) {
+		try {
+			return URLDecoder.decode(input, encoding);
+		} catch (UnsupportedEncodingException e) {
+			if (LOG.isWarnEnabled()) {
+				LOG.warn("Could not decode URL parameter '#0', returning value un-decoded", input);
+			}
+			return input;
+		}
+	}
 
     public Map<String, Object> parseQueryString(String queryString, boolean forceValueArray) {
         Map<String, Object> queryParams = new LinkedHashMap<String, Object>();
@@ -299,8 +297,8 @@ public class DefaultUrlHelper implements
                         paramValue = tmpParams[1];
                     }
                     if (paramName != null) {
-                        paramName = translateAndDecode(paramName);
-                        String translatedParamValue = translateAndDecode(paramValue);
+                        paramName = decode(paramName);
+                        String translatedParamValue = decode(paramValue);
 
                         if (queryParams.containsKey(paramName) || forceValueArray) {
                             // WW-1619 append new param value to existing value(s)