Hi again,

I woke up remembering this problem happens when I don't surround my
element by tc:column tags. So I decided to take a look so I don't feel
stupid, and I found extra tc:column tags. After correcting the problem:


            <tc:sheet id="adressesSheet" var="adress" showHeader="false"

                  value="#{personCtrl.adresses}" columns="1*"

                  binding="#{personCtrl.adressTable}">

                  <tc:column>

                        <tc:panel>

                             <f:facet name="layout">

                                   <tc:gridLayout columns="10px;1*;10px" />

                             </f:facet>



                             <ui:include src="/person/adress.xhtml" />



                        </tc:panel>

                  </tc:column>

            </tc:sheet>


Nothing has changed : I still have the problem with ui:include, and it still
disappears when I use jsp:include instead...

Anyway, the 'adress' variable should never be equal to #{personCtrl.adresses
}, which is my case...

Regards,
Zied

2007/9/7, Zied Hamdi <[EMAIL PROTECTED]>:
>
> Hi,
>
> I hezitated for a while before sending this post, it seems impossible to
> me.
>
> Again under facelets (maybe it's due to the nightbuild of 05.09 but I
> don't think the junit didn't try this) I have a problem I didn't have with
> "plain" jsp:
>
> /person/adressListBox.xhtml
> ...
>             <tc:sheet id= "adressesSheet" var ="adress1" showHeader="false"
>
>                   value ="#{personCtrl.adresses}" columns= "1*"
>
>                   binding ="#{personCtrl.adressTable}" >
>
>                   < tc:column>
>
>                         < tc:panel>
>
>                              < f:facet name ="layout" >
>
>                                    < tc:gridLayout columns ="10px;1*;10px"
> />
>
>                              </ f:facet>
>
>
>
>                              < tc:column />
>
>
>
> *                             < f:subview id ="personAdressList" >*
>
> *                                   < ui:include src ="/person/adress.xhtml"
> >*
>
> *                                         < c:set value ="#{adress1[0]}"
> var= "adress"></ c:set> *
>
> *                                   </ ui:include> *
>
> *                             </ f:subview> *
>
>
>
>                              < tc:column />
>
>
>
>                         </tc:panel >
>
>                   </tc:column >
>
>             </tc:sheet>
> ...
>
> The error I receive here is :
>
> Caused by: *javax.el.PropertyNotFoundException*: /person/adress.xhtml
> @18,52 value="#{adress.specifier }": /person/adressListBox.xhtml @64,50 
> *value="#{adress1[0]}":
> Property '0' not found on type org.hibernate.collection.PersistentSet*
>
>       at com.sun.facelets.el.TagValueExpression.getValue(*
> TagValueExpression.java:73 *)
>
>       at javax.faces.component.UIOutput.getValue(*UIOutput.java:173* )
>
>       ... 99 more
>
>
> So it's really true: adress1 contains the value of 
> #{personCtrl.adresses}instead of one of its elements: it should not be a Set 
> but an Adress
> instance. (the exception is intentional to put in evidence the problem in
> one code snippet). Originally var ="adress1" was var= "adress". And there
> were no *< c:set.*
>
>
> The error in that case is equivalent when I attempt to use the variable
> adress in the included page:
>
> Caused by: *javax.el.PropertyNotFoundException*: /person/adress.xhtml
> @18,52 value="#{adress.specifier }": Property 'specifier' not found on
> type org.hibernate.collection.PersistentSet
>
>       at com.sun.facelets.el.TagValueExpression.getValue(*
> TagValueExpression.java:73 *)
>
>       at javax.faces.component.UIOutput.getValue(*UIOutput.java:173* )
>
>       ... 99 more
>
>
>
> Here's the component tree (I didn't find the input el, I suppose it's in
> the markup variable):
> **
> * <UIData columns="1*" directLinkCount="9" first="0" id="adressesSheet"
> rendered="true" rowIndex="0" rows="100" selectable="multi"
> showDirectLinks="none" showHeader="false" showPageRange="none"
> showRowRange="none" sortActionListener=" transient="false" var="adress"
> binding="#{ personCtrl.adressTable}">  <UIColumn id="j_id80" markup="[
> Ljava.lang.String;@76cfab" rendered="true" sortable="false"
> transient="false">  <UIPanel id="j_id81" markup="[Ljava.lang.String;@3c1a28"
> rendered="true" transient="false"> layout <UIGridLayout
> columns="10px;1*;10px" id="j_id363" ignoreFree="false" rendered="true"
> rows="1*" transient="false"/>  <UIColumn id="j_id83" markup="[
> Ljava.lang.String;@1d94799" rendered="true" sortable="false"
> transient="false"/>  <UINamingContainer id="personAdressList"
> rendered="true" transient="false"/>  <UIColumn id="j_id85" markup="[
> Ljava.lang.String;@1ebcd54" rendered="true" sortable="false"
> transient="false"/> </UIPanel> </UIColumn>  <UIColumn id="j_id414"
> markup="[Ljava.lang.String;@1f58247" rendered="true" sortable="false"
> transient="false">  <UIPanel id="j_id415" markup="[Ljava.lang.String;@13c2a46"
> rendered="true" transient="false"> layout <UIGridLayout
> columns="10px;1*;10px" id="j_id416" ignoreFree="false" rendered="true"
> rows="1*" transient="false"/>  <UIColumn id="j_id417" markup="[
> Ljava.lang.String;@fb8c90" rendered="true" sortable="false"
> transient="false"/>  <UINamingContainer id="personAdressList"
> rendered="true" transient="false">  <UIPanel id="j_id418" markup="[
> Ljava.lang.String;@c94377" rendered="true" transient="false"> layout 
> <UIGridLayout
> columns="1*;1*;1*" id="j_id419" ignoreFree="false" margin="3px"
> marginBottom="3px" marginLeft="3px" marginRight="3px" marginTop="3px"
> rendered="true" rows="1*" transient="false"/>  <UICell id="j_id420"
> rendered="true" scrollbars="false" spanX="1" spanY="1" transient="false">  
> <UILinkCommand
> action="#{personCtrl.removeAdressCmd}" actionExpression="#{
> personCtrl.removeAdressCmd}" defaultCommand="false" disabled="false"
> id="j_id421" immediate="false" markup="[ Ljava.lang.String;@16c6310"
> rendered="true" renderedPartially="[Ljava.lang.String;@dbd726"
> transient="false" transition="true"/> </UICell>  <UIPanel id="specifier"
> markup="[Ljava.lang.String;@10a034e" rendered="true" transient="false">
> layout <UIGridLayout columns="150px;*" id="j_id422" ignoreFree="false"
> rendered="true" rows="1*" transient="false"/>  <UILabel id="j_id423"
> markup="[Ljava.lang.String;@5f1c5e" rendered="true" transient="false"
> value="Complément d'adresse"/>  <UIInput disabled="false" id="j_id424"
> immediate="false" localValueSet="false" markup="[Ljava.lang.String;@3fa023"
> password="false" readonly="false" rendered="true" required="false"
> transient="false" valid="true"/> </UIPanel>*
> *...*
>
> By the way, it's painful to see what's inside varibales with JSF, do you
> have a best practice approch? sth like in old jsps <%System.out.print();%>.
> I've tried the <ui:debug hotkey="x"/> in my root page but it doesn't react
> on any shortcut and doesn't throw js exceptions, so it's a subject apart.
> Regads,
> Zied
>



-- 
Zied Hamdi
zatreex.sourceforge.net

Reply via email to