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)