Author: sascharodekamp
Date: Mon Mar 5 12:34:50 2012 New Revision: 1297030 URL: http://svn.apache.org/viewvc?rev=1297030&view=rev Log: No Url encoding for get parameters (https://issues.apache.org/jira/browse/OFBIZ-2628) using the URLEncoder to encode and render URLs with special Chars. The encoding is always UTF-8 Modified: ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java ofbiz/branches/release10.04/framework/widget/src/org/ofbiz/widget/WidgetWorker.java Modified: ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1297030&r1=1297029&r2=1297030&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java (original) +++ ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java Mon Mar 5 12:34:50 2012 @@ -24,6 +24,8 @@ import java.io.IOException; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.Charset; import java.security.cert.X509Certificate; import java.util.List; import java.util.Locale; @@ -1079,7 +1081,12 @@ public class RequestHandler { newURL.insert(questionIndex, sessionId); } } - encodedUrl = newURL.toString(); + try { + encodedUrl = URLEncoder.encode(newURL.toString(), Charset.forName("UTF-8").displayName()); + } catch (UnsupportedEncodingException e) { + Debug.logError(e, module); + encodedUrl = newURL.toString(); + } } } else { encodedUrl = newURL.toString(); Modified: ofbiz/branches/release10.04/framework/widget/src/org/ofbiz/widget/WidgetWorker.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/widget/src/org/ofbiz/widget/WidgetWorker.java?rev=1297030&r1=1297029&r2=1297030&view=diff ============================================================================== --- ofbiz/branches/release10.04/framework/widget/src/org/ofbiz/widget/WidgetWorker.java (original) +++ ofbiz/branches/release10.04/framework/widget/src/org/ofbiz/widget/WidgetWorker.java Mon Mar 5 12:34:50 2012 @@ -20,7 +20,10 @@ package org.ofbiz.widget; import java.io.IOException; import java.io.StringWriter; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.net.URLEncoder; +import java.nio.charset.Charset; import java.text.DateFormat; import java.util.List; import java.util.Map; @@ -316,9 +319,14 @@ public class WidgetWorker { public String getValue(Map<String, Object> context) { if (this.value != null) { - return this.value.expandString(context); + try { + return URLEncoder.encode(this.value.expandString(context), Charset.forName("UTF-8").displayName()); + } catch (UnsupportedEncodingException e) { + Debug.logError(e, module); + return this.value.expandString(context); + } } - + Object retVal = null; if (this.fromField != null && this.fromField.get(context) != null) { retVal = this.fromField.get(context); @@ -329,7 +337,7 @@ public class WidgetWorker { if (retVal != null) { TimeZone timeZone = (TimeZone) context.get("timeZone"); if (timeZone == null) timeZone = TimeZone.getDefault(); - + String returnValue = null; // format string based on the user's time zone (not locale because these are parameters) if (retVal instanceof Double || retVal instanceof Float || retVal instanceof BigDecimal) { @@ -347,7 +355,11 @@ public class WidgetWorker { DateFormat df = UtilDateTime.toDateTimeFormat("EEE MMM dd hh:mm:ss z yyyy", timeZone, null); returnValue = df.format((java.util.Date) retVal); } else { - returnValue = retVal.toString(); + try { + returnValue = URLEncoder.encode(retVal.toString(), Charset.forName("UTF-8").displayName()); + } catch (UnsupportedEncodingException e) { + Debug.logError(e, module); + } } return returnValue; } else { @@ -378,7 +390,7 @@ public class WidgetWorker { /** Returns the script location based on a script combined name: * <code>location#methodName</code>. - * + * * @param combinedName The combined location/method name * @return The script location */ @@ -393,7 +405,7 @@ public class WidgetWorker { /** Returns the script method name based on a script combined name: * <code>location#methodName</code>. Returns <code>null</code> if * no method name is found. - * + * * @param combinedName The combined location/method name * @return The method name or <code>null</code> */ |
Free forum by Nabble | Edit this page |