I tried that as well. The method "public String action()" in menuItem was
never called when I used it a tr:commandNavigationItem tag as specified in a
previous message. I even tried removing destination=... in combination.
Any ideas? Thank you for your help.
--
Chris Hansen
Overstock.com
Internal Applications
6350 South 3000 East
Salt Lake City, Utah 84121
Toll Free: 800.The.Big.O (843-2446)
www.overstock.com
On 12/26/06 10:43 AM, "Adam Winer" <[EMAIL PROTECTED]> wrote:
> You cannot use a getter for "action". That isn't how it works.
> The method *is* the action. You cannot do:
>
> public MethodBinding getAction()
>
> ... you must do:
>
> public String action()
>
> ... which could be implemented along the lines of:
>
> public String action()
> {
> MethodBinding action = getAction();
> if (action == null) return null;
>
> FacesContext context = FacesContext.getCurrentInstance();
> Object retVal = action.invoke(context, null);
> if (retVal == null)
> return null;
> return retVal.toString();
> }
>
> -- Adam
>
>
> On 12/26/06, Chris Hansen <[EMAIL PROTECTED]> wrote:
>> I should have specified, but the getter for menuItem.action returns a
>> javax.faces.el.MethodBinding . Are you saying that no action can be bound to
>> a getter that returns a MethodBinding?
>>
>> --
>> Chris Hansen
>> Overstock.com
>> Internal Applications
>> 6350 South 3000 East
>> Salt Lake City, Utah 84121
>> Toll Free: 800.The.Big.O (843-2446)
>> www.overstock.com
>>
>>
>> On 12/22/06 6:22 PM, "Adam Winer" <[EMAIL PROTECTED]> wrote:
>>
>>> Chris,
>>>
>>> "action" is not going to go to a bean getter. It's going
>>> to go to action method, e.g.:
>>>
>>> action="#{item.action}"
>>>
>>> means you must have:
>>>
>>> public String action()
>>>
>>> on your bean. This is just like all other "action"
>>> attributes in JSF.
>>>
>>> -- Adam
>>>
>>>
>>> On 12/22/06, Chris Hansen <[EMAIL PROTECTED]> wrote:
>>>> In the following code for a navigation menu, everything works except the
>>>> action attribute of the tr:commandNavigationItem tag:
>>>>
>>>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>>> xmlns:h="http://java.sun.com/jsf/html"
>>>>
>>>> xmlns:f="http://java.sun.com/jsf/core"
>>>> xmlns:tr="http://myfaces.apache.org/trinidad">
>>>> <tr:form>
>>>> <tr:navigationPane var="menuItem" value="#{menuModel.model}"
>>>> hint="list"
>>>> inlineStyle="margin-left:-20px;margin-top:-15px;">
>>>> <!-- For some reason text will not be displayed if there is not
>>>> another element in the tr:navigationPane besides the nodeStamp facet-->
>>>> <tr:group></tr:group>
>>>> <f:facet name="nodeStamp">
>>>> <tr:commandNavigationItem action="#{menuItem.action}"
>>>>
>>>> disabled="#{menuItem.disabled}" text="#{menuItem.label}"
>>>>
>>>> destination="#{menuItem.destination}" rendered="#{menuItem.shown}"
>>>>
>>>> selected="#{menuItem.viewId == view.viewId}" immediate="true" />
>>>> </f:facet>
>>>> </tr:navigationPane>
>>>> </tr:form>
>>>> </ui:composition>
>>>>
>>>>
>>>>
>>>> The getter for menuItem.action is never called, while all of the other
>>>> getters are being called (menuItem.destination, menuItem.label, etc.). I
>>>> tried removing the destination=... attribute with no success.
>>>>
>>>> What is the key to using an action on a commandNavigationItem, and what am
>>>> I
>>>> missing?
>>>>
>>>> Thanks.
>>>> --
>>>> Chris Hansen
>>>> Overstock.com
>>>> Internal Applications
>>>> 6350 South 3000 East
>>>> Salt Lake City, Utah 84121
>>>> Toll Free: 800.The.Big.O (843-2446)
>>>> www.overstock.com
>>>>
>>>>
>>
>>