You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by madan chowdary <ma...@yahoo.com> on 2007/02/15 11:42:41 UTC

[Tobago] or

Hi all,

I have a List object which should be iterated in my Page.

Saw in the Tld docs that <tc:forEach/> is deprecated, and suggested to use <c:forEach/>

Tried with <c:forEach/>, 
The code looks fine, but had some issue ,

The iteration part is written in the first page after a user logs in, it has an external link on the top navigation bar.

Initially when the user logs in , the iteration is not taking place, but the bean exists as i am checking for its null or not.

But when i click on the link that refers to the same page, am able to see the iterations.

The List contains 2 objects, these two objects must be iterated.

But as i see in the logs, the method is being called 4 times and object is being returned, yet the first time it doesn't display the iterations.

Y is this happening.

Attached the code below , both JSP and Java

                       <tc:panel rendered="#{storefront.showImageContentBox}">
                               <tc:out value="Not Null"/>
                            <f:verbatim>
                                <table border="1">
                            </f:verbatim>        
                            <c:forEach items="${storefront.imageContentBox}" varStatus="content" >
                                <f:verbatim>
                                   <tr valign="top">
                                    <td width="100px">
                                </f:verbatim>
                                           <tc:out value="${content.index}"/>                                
                                <f:verbatim>
                                       </td>
                                    <td>
                                </f:verbatim>
                                        <tc:out escape="false" value="#{storefront.imageContentBox[${content.index}].userGroupBoxImageText}"/>
                                <f:verbatim>
                                    </td>
                                </tr>
                                <tr>
                                    <td>&nbsp;</td>
                                </tr>
                                </f:verbatim>
                               </c:forEach>
                            <f:verbatim>
                                </table>
                            </f:verbatim>
                           </tc:panel>.

Java code is as such

List<CustomerContentBox> imageContentBoxes = null;
    
    public List<CustomerContentBox> getImageContentBox(){
        
        log.debug("getImageContentBox() methodEntry");        
        if (imageContentBoxes == null) {        
            CustomerContentBox[]    customerContentBoxs = user.getCustomerContentBox();
        
            imageContentBoxes = new ArrayList<B2BCustomerContentBox>();
        
            for(CustomerContentBox customerContentBox : customerContentBoxs){
                imageContentBoxes.add(customerContentBox);
            }
            log.debug(" ImageContents Initialized, Size ::"+imageContentBoxes.size()+"\n\n");
        }
        return imageContentBoxes;
    }
    
    public boolean isShowImageContentBox(){
        
        // Initialize the Image Content Boxes
        getImageContentBox();
        
        return (imageContentBoxes != null && imageContentBoxes.size() > 0);        
    }

This method is called 4 times as shown in the log

16:11:10,812 INFO  [STDOUT] 16:11:10,812 DEBUG [StoreFrontController] getImageCo
ntentBox() methodEntry
16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController] getImageCo
ntentBox() methodEntry
16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController] getImageCo
ntentBox() methodEntry
16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController] getImageCo
ntentBox() methodEntry

Any Suggestions Regarding this ?

Regards,
Madan




		
__________________________________________________________
Yahoo! India Answers: Share what you know. Learn something new
http://in.answers.yahoo.com/

Re: [Tobago] or

Posted by Volker Weber <v....@inexso.de>.
Hi Madan,

there is a forEach example in tobago, there is the bean resolved at
top of jsp[1]:
<%
  // load bean before expression in foreach
  VariableResolverUtil.resolveVariable(FacesContext.getCurrentInstance(),
"birdList");
%>

I think you should add:

<%
  VariableResolverUtil.resolveVariable(FacesContext.getCurrentInstance(),
"storefront");
%>

at the top of your jsp.

Regards,
  Volker

[1]: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/foreach/src/main/webapp/foreach.jsp?view=markup

2007/2/15, madan chowdary <ma...@yahoo.com>:
>
> Hi all,
>
> I have a List object which should be iterated in my Page.
>
> Saw in the Tld docs that <tc:forEach/> is deprecated, and suggested to use
> <c:forEach/>
>
> Tried with <c:forEach/>,
> The code looks fine, but had some issue ,
>
> The iteration part is written in the first page after a user logs in, it has
> an external link on the top navigation bar.
>
> Initially when the user logs in , the iteration is not taking place, but the
> bean exists as i am checking for its null or not.
>
> But when i click on the link that refers to the same page, am able to see
> the iterations.
>
> The List contains 2 objects, these two objects must be iterated.
>
> But as i see in the logs, the method is being called 4 times and object is
> being returned, yet the first time it doesn't display the iterations.
>
> Y is this happening.
>
> Attached the code below , both JSP and Java
>
>                        <tc:panel
> rendered="#{storefront.showImageContentBox}">
>                                <tc:out value="Not Null"/>
>                             <f:verbatim>
>                                 <table border="1">
>                             </f:verbatim>
>                             <c:forEach items="${storefront.imageContentBox}"
> varStatus="content" >
>                                 <f:verbatim>
>                                    <tr valign="top">
>                                     <td width="100px">
>                                 </f:verbatim>
>                                            <tc:out
> value="${content.index}"/>
>                                 <f:verbatim>
>                                        </td>
>                                     <td>
>                                 </f:verbatim>
>                                         <tc:out
> escape="false"
> value="#{storefront.imageContentBox[${content.index}].userGroupBoxImageText}"/>
>                                 <f:verbatim>
>                                     </td>
>                                 </tr>
>                                 <tr>
>                                     <td>&nbsp;</td>
>                                 </tr>
>                                 </f:verbatim>
>                                </c:forEach>
>                             <f:verbatim>
>                                 </table>
>                             </f:verbatim>
>                            </tc:panel>.
>
> Java code is as such
>
> List<CustomerContentBox> imageContentBoxes = null;
>
>     public List<CustomerContentBox> getImageContentBox(){
>
>         log.debug("getImageContentBox() methodEntry");
>         if (imageContentBoxes == null) {
>             CustomerContentBox[]    customerContentBoxs =
> user.getCustomerContentBox();
>
>             imageContentBoxes = new
> ArrayList<B2BCustomerContentBox>();
>
>             for(CustomerContentBox customerContentBox :
> customerContentBoxs){
>                 imageContentBoxes.add(customerContentBox);
>             }
>             log.debug(" ImageContents Initialized, Size
> ::"+imageContentBoxes.size()+"\n\n");
>         }
>         return imageContentBoxes;
>     }
>
>     public boolean isShowImageContentBox(){
>
>         // Initialize the Image Content Boxes
>         getImageContentBox();
>
>         return (imageContentBoxes != null && imageContentBoxes.size() > 0);
>
>     }
>
> This method is called 4 times as shown in the log
>
> 16:11:10,812 INFO  [STDOUT] 16:11:10,812 DEBUG [StoreFrontController]
> getImageCo
> ntentBox() methodEntry
> 16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController]
> getImageCo
> ntentBox() methodEntry
> 16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController]
> getImageCo
> ntentBox() methodEntry
> 16:11:10,828 INFO  [STDOUT] 16:11:10,828 DEBUG [StoreFrontController]
> getImageCo
> ntentBox() methodEntry
>
> Any Suggestions Regarding this ?
>
> Regards,
> Madan
>
>  ________________________________
>  Here's a new way to find what you're looking for - Yahoo! Answers