Hello, I just tried to integrate the t:panelStack, with the following sniplet:
<t:panelStack id="stack" selectedPanel="#{backingBean.selectedPanel}">
<h:panelGroup id="firstPanel">
Foo
</h:panelGroup>
<h:panelGroup id="secondPanel">
Bar
</h:panelGroup>
</t:panelStack>
When i load this, i get the following exception:
Nov 1, 2006 10:38:33 AM com.sun.facelets.FaceletViewHandler
handleRenderException
SEVERE: Error Rendering View[/pages/reservation/product/hotel/select.xhtml]
java.lang.IllegalArgumentException: empty expr
at
javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:388)
at
org.apache.myfaces.custom.panelstack.HtmlPanelStackRenderer.encodeEnd(HtmlPanelStackRenderer.java:67)
One reason for this seems to be that initially the
#{backingBean.selectedPanel} is null.
The HtmlPanelStackRenderer does
String selectedPanel = panelStack.getSelectedPanel();
which returns an empty String ("") instead of null, even though
the #{backingBean.selectedPanel} definitively returns null.
The HtmlPanelStackRenderer then tries to find a component with
id "", what lead to the exception.
The panelStack.getSelectedPanel() looks like the following:
public String getSelectedPanel()
{
if (selectedPanel != null) return selectedPanel;
ValueBinding vb = getValueBinding("selectedPanel");
return vb != null ? _ComponentUtils.getStringValue(getFacesContext(),
vb) : null;
}
Am I doing anything wrong? Has somebody experienced the same issue?
Any clue why the value for the value binding is evaluated to ""?
I'm using tomahawk-1.1.5 snapshots from 2006-07-11.
Thanx for your help,
cheers,
Martin
--
signature.asc
Description: This is a digitally signed message part

