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)