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


--

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to