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,尝试键入一些没有标签的随意文本,将文本放在引号中,使用值=)。每次结果都是一样的。我做错了什么?
答案 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。