You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2008/08/29 14:20:50 UTC
svn commit: r690202 -
/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java
Author: matzew
Date: Fri Aug 29 05:20:49 2008
New Revision: 690202
URL: http://svn.apache.org/viewvc?rev=690202&view=rev
Log:
TRINIDAD-1134 - XmlMenuModel: action is interpreted as ValueExpression
Thanks to Abhijit S Ghosh for his patch
Modified:
myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java?rev=690202&r1=690201&r2=690202&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java Fri Aug 29 05:20:49 2008
@@ -20,6 +20,10 @@
import java.util.Map;
+import javax.el.ELContext;
+import javax.el.ExpressionFactory;
+import javax.el.MethodExpression;
+import javax.faces.context.FacesContext;
import javax.faces.webapp.UIComponentTag;
/**
@@ -66,14 +70,17 @@
{
String value = _action;
- // Could be EL expression
- if ( value != null
- && UIComponentTag.isValueReference(value)
- )
+ if (value != null)
{
- // Value of action is EL method binding, so we
- // need to evaluate it
- value = MenuUtils.getBoundValue(value, String.class);
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ ExpressionFactory expressionFactory =
+ facesContext.getApplication().getExpressionFactory();
+ ELContext context = facesContext.getELContext();
+ MethodExpression methodExpression =
+ expressionFactory.createMethodExpression(context, value,
+ String.class, new Class<?>[]
+ {});
+ value = (String) methodExpression.invoke(context, null);
}
// Post me as the selected Node for the request