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 2012/07/23 16:25:42 UTC
svn commit: r1364644 -
/myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
Author: lu4242
Date: Mon Jul 23 14:25:41 2012
New Revision: 1364644
URL: http://svn.apache.org/viewvc?rev=1364644&view=rev
Log:
MYFACES-3584 h:commandLink renders onclick JavaScript referencing a non-existent HTML id
Modified:
myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
Modified: myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=1364644&r1=1364643&r2=1364644&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/core/branches/2.0.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Mon Jul 23 14:25:41 2012
@@ -314,9 +314,30 @@ public abstract class HtmlLinkRendererBa
{
HtmlRendererUtils.writeIdAndName(writer, component, facesContext);
}
- else
+ else
{
- HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);
+ // If onclick is not null, both onclick and server side script are rendered
+ // using jsf.util.chain(...) js function. We need to check that case and force
+ // id/name rendering. It is possible to do something else in that case and
+ // do not render the script using jsf.util.chain, but for now it is ok.
+ String commandOnclick;
+ if (component instanceof HtmlCommandLink)
+ {
+ commandOnclick = ((HtmlCommandLink)component).getOnclick();
+ }
+ else
+ {
+ commandOnclick = (String)component.getAttributes().get(HTML.ONCLICK_ATTR);
+ }
+
+ if (commandOnclick != null)
+ {
+ HtmlRendererUtils.writeIdAndName(writer, component, facesContext);
+ }
+ else
+ {
+ HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);
+ }
}
long commonPropertiesMarked = 0L;
if (isCommonPropertiesOptimizationEnabled(facesContext))