2013-10-09 84 views
0

嗨我无法访问我的xhtml页面中的值。我在我的应用程序中使用JSF作为前端。JSF bean不在xhtml页面显示值

ProductEntity.java

 String name; 
     String cost; 
     String mfgDate; 
     // set()/get() methods 

ProductBean.java

 private ArrayList<ProductTO> productTO = new ArrayList<ProductTO>(); 
     setProductTO()/getProductTO() 
     init(){ 
    proList = proManager.getAllProduct(); //getting list of all products 
    for (ProductEntity proEntity : proList) { 
    ProTO proTo = new ProTO(); 
    proto.set(proEntity); 
     ..... 

     } 
    productTO.add(proTo); 

showProduct.xhtml

  <h:dataTable value="#{product.productTO}" var="pto"> 

       <h:column> 
       <f:facet name="header"> 
       <h:outputText 
           value="productname" />   

       </f:facet> 
       <h:outputText value="#{pto.name}"/> 
       </h:column> 
    </h:dataTable>   

pto.name值未反映在html页面中。 proList正在填充,但是当我在html中访问它时,它不显示值。请提出一些解决方案。谢谢 !!!!

+0

只是一个小旁注:看来你使用自定义的制定者来填充DTO对象来自实体。尝试使用像Dozer(http://dozer.sourceforge.net/)这样的Java bean映射器自动执行此操作,任何DTO只需一行代码<->实体映射 – noone

+0

请添加相关的托管bean代码和Facelets/JSF代码用在你的页面上来重现这个问题。 –

回答

0

看来你想填充列表与null元素,在productTo.add(proTo)程序应该是for指令中:

for (ProductEntity proEntity : proList) { 
    ProTO proTo = new ProTO(); 
    proto.set(proEntity); 
     ..... 
    productTO.add(proTo); 
}