On 3/1/06, Ryan Wynn <[EMAIL PROTECTED]> wrote:
> I am getting the following exception and though I have looked at bug
> 37796 I still can't decide if what I am trying to do cannot be done
> with symbol replacement or if I have made a mistake.
>
> The Component jsfid attribute is null.  The cause is most likely a
> missing "clayJsfid" attribute when using HTML templates and nesting
> a clay component.  It is also likely that the problem was caused by using
> generic templates with symbol replacement of the
> [EMAIL PROTECTED]:
> java.lang.NullPointerException
>
> In my component that extends clay, clayJsfid is tied to a value
> binding expression [EMAIL PROTECTED] and in my .html file I
> specify the symbol managed-bean-name to be myBean.
>
> What exactly constitutes a generic template?
>
> Thanks,
> Ryan
>


Here is some more information about my problem.

I have the following files

add.html

<span jsfid="clay" clayJsfid="templates/template.html"
content="views/add.html"/>


templates/template.html

<TABLE width="100%" border="1">
        <TBODY>
                <TR>
                        <TD colspan="2" height="20" valign="top" 
bgcolor="lightblue">Scheduler
                        Application</TD>
                </TR>
                <TR>
                        <TD width="20%" height="600" valign="top">
                        <A href="#" jsfid="addContactLink">Add New 
Contact</A><BR>
                        <BR>
                        <A href="#" jsfid="viewContactsLink">View 
Contacts</A><BR>
                        <BR>
                        <A href="#" jsfid="newTaskLink">Add New Task</A><BR>
                        <BR>
                        <A href="#" jsfid="viewTasksLink">View Tasks</A><BR>
                        <BR>
                        </TD>
                        <TD width="80%" height="600" valign="top"><SPAN 
jsfid="clay"
                                clayJsfid="@content" allowBody="false"><b>Hello 
World!</b></SPAN></TD>
                </TR>
        </TBODY>
</TABLE>


views/add.html

<span jsfid="collage:wizard" wizardBean="addPersonWizard" />


Now, views/add.html is where the problem is.  collage:wizard is
specified as follows


<component jsfid="collage:wizard" extends="panelGrid"
        allowBody="false">

        <attributes>
                <set name="columns" value="1" />
                <set name="cellspacing" value="0" />
                <set name="cellpadding" value="0" />
                <set name="border" value="0" />
        </attributes>

        <element renderId="1" jsfid="clay">
                <attributes>
                        <set name="clayJsfid" value="[EMAIL PROTECTED]" />
                </attributes>
        </element>

        <element renderId="2" jsfid="panelGrid">
                <attributes>
                        <set name="columns" value="4" />
                        <set name="cellspacing" value="0" />
                        <set name="cellpadding" value="10" />
                        <set name="border" value="0" />
                </attributes>

                <element renderId="1" jsfid="collage:commandButton">
                        <attributes>
                                <set name="value" value="Back" />
                                <set name="action" value="[EMAIL PROTECTED]" />
                                <set name="rendered"
                                        value="[EMAIL PROTECTED]" />
                        </attributes>
                </element>

                <element renderId="2" jsfid="collage:commandButton">
                        <attributes>
                                <set name="value" value="Next" />
                                <set name="action" value="[EMAIL PROTECTED]" />
                                <set name="rendered"
                                        value="[EMAIL PROTECTED]" />
                        </attributes>
                </element>

                <element renderId="3" jsfid="collage:commandButton">
                        <attributes>
                                <set name="value" value="Back" />
                                <set name="action" value="[EMAIL PROTECTED]" />
                                <set name="rendered"
                                        value="[EMAIL PROTECTED]" />
                        </attributes>
                </element>

                <element renderId="4" jsfid="collage:commandButton">
                        <attributes>
                                <set name="value" value="Back" />
                                <set name="action" value="[EMAIL PROTECTED]" />
                                <set name="rendered"
                                        value="[EMAIL PROTECTED]" />
                        </attributes>
                </element>

        </element>

</component>


wizardBean has an attribute called viewId which corresponds to the
current view of the wizard (e.g. /views/page1.html).  This viewId will
change with calls to wizardBean.next, wizardBean.back, etc.

It seems like Clay is not able to resolve the symbol wizardBean in
collage:wizard in order to dynamically display the nested clay
component.  Again this is the message that I get:

The Component jsfid attribute is null.  The cause is most likely a
missing "clayJsfid" attribute when using HTML templates and nesting
a clay component.  It is also likely that the problem was caused by using
generic templates with symbol replacement of the
[EMAIL PROTECTED]:
java.lang.NullPointerException

I am going to run it through the debugger.  Please let me know if you
have any advice.

Thanks,
Ryan

Reply via email to