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:14:46 UTC

svn commit: r1671153 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Author: lu4242
Date: Fri Apr  3 20:14:46 2015
New Revision: 1671153

URL: http://svn.apache.org/r1671153
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/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java?rev=1671153&r1=1671152&r2=1671153&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java Fri Apr  3 20:14:46 2015
@@ -316,7 +316,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);
+            }
         }
     }
 
@@ -343,17 +352,13 @@ public class AjaxHandler extends TagHand
         {
             if (_event.isLiteral())
             {
-                eventName = getEventName();
+                eventName = _event.getValue();
             }
             else
             {
                 eventName = (String) _event.getValueExpression(faceletContext, String.class).getValue(faceletContext);
             }
         }
-        else
-        {
-            eventName = getEventName();
-        }
         if (eventName == null)
         {
             eventName = cvh.getDefaultEventName();