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();