You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/05/25 05:42:41 UTC
svn commit: r947905 - in
/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html:
HtmlButtonRendererBase.java HtmlLinkRendererBase.java
Author: lu4242
Date: Tue May 25 03:42:41 2010
New Revision: 947905
URL: http://svn.apache.org/viewvc?rev=947905&view=rev
Log:
MYFACES-2726 CommandLink renderer do not escape \ characters in generated javascript
Modified:
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java?rev=947905&r1=947904&r2=947905&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java Tue May 25 03:42:41 2010
@@ -392,7 +392,39 @@ public class HtmlButtonRendererBase
// if HTMLEncoder.encode is called, then
// when is called on writer.writeAttribute, encode method
// is called again so we have a duplicated encode call.
- String strParamValue = value != null ? value.toString() : "";
+ // MYFACES-2726 All '\' and "'" chars must be escaped
+ // because there will be inside "'" javascript quotes,
+ // otherwise the value will not correctly restored when
+ // the command is post.
+ //String strParamValue = value != null ? value.toString() : "";
+ String strParamValue = "";
+ if (value != null)
+ {
+ strParamValue = value.toString();
+ StringBuffer buff = null;
+ for (int i = 0; i < strParamValue.length(); i++)
+ {
+ char c = strParamValue.charAt(i);
+ if (c == '\'' || c == '\\')
+ {
+ if (buff == null)
+ {
+ buff = new StringBuffer();
+ buff.append(strParamValue.substring(0,i));
+ }
+ buff.append('\\');
+ buff.append(c);
+ }
+ else if (buff != null)
+ {
+ buff.append(c);
+ }
+ }
+ if (buff != null)
+ {
+ strParamValue = buff.toString();
+ }
+ }
if (params.length() > 1)
{
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=947905&r1=947904&r2=947905&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Tue May 25 03:42:41 2010
@@ -526,7 +526,39 @@ public abstract class HtmlLinkRendererBa
// if HTMLEncoder.encode is called, then
// when is called on writer.writeAttribute, encode method
// is called again so we have a duplicated encode call.
- String strParamValue = value != null ? value.toString() : "";
+ // MYFACES-2726 All '\' and "'" chars must be escaped
+ // because there will be inside "'" javascript quotes,
+ // otherwise the value will not correctly restored when
+ // the command is post.
+ //String strParamValue = value != null ? value.toString() : "";
+ String strParamValue = "";
+ if (value != null)
+ {
+ strParamValue = value.toString();
+ StringBuffer buff = null;
+ for (int i = 0; i < strParamValue.length(); i++)
+ {
+ char c = strParamValue.charAt(i);
+ if (c == '\'' || c == '\\')
+ {
+ if (buff == null)
+ {
+ buff = new StringBuffer();
+ buff.append(strParamValue.substring(0,i));
+ }
+ buff.append('\\');
+ buff.append(c);
+ }
+ else if (buff != null)
+ {
+ buff.append(c);
+ }
+ }
+ if (buff != null)
+ {
+ strParamValue = buff.toString();
+ }
+ }
if (params.length() > 1)
{