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 2015/04/03 22:15:44 UTC

svn commit: r1671154 - /myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Author: lu4242
Date: Fri Apr  3 20:15:44 2015
New Revision: 1671154

URL: http://svn.apache.org/r1671154
Log:
MYFACES-3233 f:ajax event - type="javax.el.ValueExpression (must evaluate to java.lang.String)" not supported (Thanks to Martin Koci for provide this patch)

Modified:
    myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Modified: myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java?rev=1671154&r1=1671153&r2=1671154&view=diff
==============================================================================
--- myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java (original)
+++ myfaces/core/branches/2.1.x/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java Fri Apr  3 20:15:44 2015
@@ -306,7 +306,16 @@ public class AjaxHandler extends TagHand
         }
         else
         {
-            return _event.getValue();
+            if (_event.isLiteral())
+            {
+                return _event.getValue();
+            }
+            else
+            {
+                FaceletContext faceletContext = (FaceletContext) FacesContext.getCurrentInstance().
+                        getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
+                return (String) _event.getValueExpression(faceletContext, String.class).getValue(faceletContext);
+            }
         }
     }
 
@@ -327,7 +336,19 @@ public class AjaxHandler extends TagHand
         // cast to a ClientBehaviorHolder
         ClientBehaviorHolder cvh = (ClientBehaviorHolder) parent;
         
-        String eventName = getEventName();
+        
+        String eventName = null;
+        if (_event != null)
+        {
+            if (_event.isLiteral())
+            {
+                eventName = _event.getValue();
+            }
+            else
+            {
+                eventName = (String) _event.getValueExpression(faceletContext, String.class).getValue(faceletContext);
+            }
+        }
         if (eventName == null)
         {
             eventName = cvh.getDefaultEventName();