Hello,

I'm in need of some assistance.  I have a complex object hierarchy that
I'm trying to create a JSF view for.  I have simplified it to the point
where I still get the error.  Here is the setup:

Aobject that contains a list of Bobjects.  Bobject contains an Eobject
and then Eobject has a value attribute.

Here is what I was trying to do in the jspx, note I am using Trinidad
with facelets:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"; version="2.0"
        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";>
        <ui:composition template="/view/template.jspx">
                <ui:define name="content">
                        <h:form>
                                <tr:panelHeader
        
text="#{messages['com.eds.employeetracker.entity.admin.Aobject.search.he
ader']}"
                                        messageType="none" />
                                <tr:panelHorizontalLayout halign="left">
                                        <tr:panelFormLayout>
                                                <tr:panelBox
background="transparent" inlineStyle="width: 100%;">
                                                        <tr:panelHeader
        
text="#{messages['com.eds.employeetracker.entity.admin.Aobject.label']}"
/>
                                                        <tr:inputText
        
label="#{messages['com.eds.employeetracker.entity.admin.Zobject.zvalue.l
abel']}"
        
value="#{manageAdminAobject.zvalue}" />
                                                        <tr:inputText
        
label="#{messages['com.eds.employeetracker.entity.admin.Aobject.avalue.l
abel']}"
        
value="#{manageAdminAobject.avalue}" />
                                                        <tr:table
id="bobjectListTable"
        
value="#{manageAdminAobject.bobjectList}" var="bobjectList">
        
<tr:column
        
headerText="#{messages['com.eds.employeetracker.entity.admin.Eobject.eva
lue.label']}">
        
<tr:inputText
        
label="#{messages['com.eds.employeetracker.entity.admin.Eobject.evalue.l
abel']}"
        
value="#{bobjectList.eobject.evalue}" />
        
</tr:column>
                                                        </tr:table>
        
<tr:panelButtonBar>
        
<tr:commandButton text="#{messages['command.label.add']}"
        
action="#{view$admin$aobjectManage.addAction}" />
        
</tr:panelButtonBar>
                                                </tr:panelBox>
                                        </tr:panelFormLayout>
                                </tr:panelHorizontalLayout>
                        </h:form>
                </ui:define>
        </ui:composition>
</jsp:root>

The page renders properly, however when I try to submit the page I get
the following error:

WARNING: executePhase(RENDER_RESPONSE
6,org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$Ca
[EMAIL PROTECTED]) threw exception
javax.el.ELException: /view/admin/aobjectManage.jspx @29,51
value="#{bobjectList.eobject.evalue}": Target Unreachable, 'eobject'
returned null
        at
org.apache.myfaces.trinidad.bean.ValueBindingValueExpression.isReadOnly(
ValueBindingValueExpression.java:83)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.EditableValueRe
nderer.getReadOnly(EditableValueRenderer.java:244)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRend
erer.renderAsElement(FormElementRenderer.java:217)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMe
ssageRenderer.getLabelFor(InputLabelAndMessageRenderer.java:78)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessage
Renderer$Label.getForId(LabelAndMessageRenderer.java:617)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.OutputLabelRend
erer.encodeAll(OutputLabelRenderer.java:89)
        at
org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRen
derer.java:330)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessage
Renderer.encodeAll(LabelAndMessageRenderer.java:193)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMe
ssageRenderer.encodeAll(InputLabelAndMessageRenderer.java:120)

As stated the page does render fine as well as I do have the Aobject's
list of Bobjects initilized, as well as the Bobject's Eobject is
initialized

        if (manageAdminAobject.getId() == null)
        {
                manageAdminAobject.getBobjectList().add(
                                new
com.eds.employeetracker.entity.admin.Bobject());
                manageAdminAobject.getBobjectList().get(0).setEobject(
                                new
com.eds.employeetracker.entity.admin.Eobject());
                setManagedBean("manageAdminAobject",
manageAdminAobject);
        }

It seems that it doesn't handle a complex nested objects, as there are
no issues with any non-complex value that is directly on the Bobject.
Has anyone else seen this behavior and is there a way around it??

Any help would be greatly appreciated as, like most people, I'm under a
huge time crunch to get the working.

Thanks,

Bob

Reply via email to