表值在JSF中为空

时间:2014-11-16 17:04:01

标签: jsf

JSF摘录:

<h:dataTable border="1" cellspacing="10">
 <h:column>     
    <f:facet name="header">Order No</f:facet>
    <h:outputText value="FirstEntry" />
 </h:column>

 <h:column>
    <f:facet name="header">Product Name</f:facet>
    #{userBean.firstName}
 </h:column>

 <h:column>
    <f:facet name="header">Email</f:facet>
    #{userBean.email}
 </h:column>
</h:dataTable>

在html中给我这个:

<table border="1" cellspacing="10">
 <thead>
  <tr>
   <th scope="col">Order No</th>
   <th scope="col">Product Name</th>
   <th scope="col">Email</th>
  </tr>
</thead>
<tbody>
 <tr><td></td><td></td><td></td></tr></tbody>
</table>

该表总是作为一个带有标题的空表,而不是行。根据JSF教程,这应该工作。正如你所看到的,我已经尝试了几种在表中放置值的选项(使用outputText,使用bean,尝试键入一些没有标签的随意文本,将文本放在引号中,使用值=)。每次结果都是一样的。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的value

中没有h:datatable个属性

参见例如MyFaces JSF实现:https://myfaces.apache.org/core21/myfaces-impl/tagdoc/h_dataTable.html

  

Attrivute名称:
  属性类型:对象

     

EL表达式,指定支持此表的数据模型。

     

EL表达式引用的值可以是任何类型。

     
      
  • 直接使用DataModel类型的值。
  •   
  • 类型为array-of-Object,java.util.List,java.sql.ResultSet或javax.servlet.jsp.jstl.sql.Result的类似数组的参数包装在一个知道如何迭代的相应DataModel中元素。
  •   
  • 其他值作为单行包装在DataModel中。
  •   
     

特别注意无序集合,例如Set不是   支持的。因此,如果值表达式引用了这样的对象   那么这个表将被认为只包含一个元素 -   收藏本身。

P.S。如果您没有为您的表格收集元素,为什么还需要h:datatable?你也可以使用html。