【问题标题】:JSF bean not displaying values in xhtml pageJSF bean不在xhtml页面中显示值
【发布时间】:2013-10-09 17:42:09
【问题描述】:

您好,我无法访问我的 xhtml 页面中的值。我在我的应用程序中使用 JSF 作为前端。

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 中访问它时,它没有显示值。请提出一些解决方案。谢谢!!!!

【问题讨论】:

  • 只是一点旁注:您似乎使用自定义设置器从实体填充 DTO 对象。尝试使用像 Dozer (dozer.sourceforge.net) 这样的 Java bean 映射器来自动执行此操作,只需 1 行代码即可用于任何 DTO实体映射
  • 请添加相关的托管 bean 代码和您页面中使用的 Facelets/JSF 代码以重现此问题。

标签: jsf


【解决方案1】:

您似乎正在尝试使用 null 元素填充列表,productTo.add(proTo) 过程应该在 for 指令内:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多