Hi all!
I've got another nut to crack. I use the NavigationModel like described in
http://incubator.apache.org/adffaces/devguide/navigation.html.
But for my navigation node in the faces-config.xml I need for the outcome
property an el expression that calls an action on a managed bean, like:
#{customerAction.logout}. Typically, this action will initialize the usecase
I'm jumping in. The sample uses only simple logical outcome strings.
Instead of calling this action, Trinidad calls the method
customerAction.getLogout() and the application will end up with following error
on the first page :
javax.faces.el.PropertyNotFoundException: /layout.xhtml @33,107
value="#{menuModel.model}": Bean: ....CustomerAction, property: logout
at
com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:58)
at
org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:67)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:1118)
at
org.apache.myfaces.trinidad.component.UIXNavigationLevel.getValue(UIXNavigationLevel.java:122)
at
org.apache.myfaces.trinidad.component.UIXCollection._flushCachedModel(UIXCollection.java:1085)
at
org.apache.myfaces.trinidad.component.UIXCollection.encodeBegin(UIXCollection.java:510)
at
org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:317)
at
org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:332)
at
org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode.render(UIComponentUINode.java:279)
at
org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode.render(UIComponentUINode.java:256)
at
org.apache.myfaces.trinidadinternal.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(ContextPoppingUINode.java:240)
at
org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
at
org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
at
org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderChild(BaseRenderer.java:425)
at
org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderNamedChild(BaseRenderer.java:397)
at
org.apache.myfaces.trinidadinternal.ui.laf.base.desktop.PageHeaderLayoutRenderer._renderTabBar(PageHeaderLayoutRenderer.java:584)
at
org.apache.myfaces.trinidadinternal.ui.laf.base.desktop.PageHeaderLayoutRenderer.renderContent(PageHeaderLayoutRenderer.java:444)
Can I change that behavior?
My facelet looks like this:
<tr:navigationPane hint="tabs" shortDesc="Whle Tab" var="node"
value="#{menuModel.model}">
<f:facet name="nodeStamp">
<tr:commandNavigationItem
text="#{node.label}"
action="#{node.getOutcome}"/>
</f:facet>
</tr:navigationPane>
and one of my navigation nodes in faces-config.xml looks like this:
<managed-bean>
<managed-bean-name>navItem_a7</managed-bean-name>
<managed-bean-class>.....NavigationItem</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>label</property-name>
<value>Abmelden</value>
</managed-property>
<managed-property>
<property-name>viewId</property-name>
<value>/demo/choosePizza.xhtml</value>
</managed-property>
<managed-property>
<property-name>outcome</property-name>
<value>#{customerAction.logout}</value>
</managed-property>
</managed-bean>
NOTE that is used an el expression for the outcome.
I would be glad for your hints.
Thanks
Kuno