[英]Displaying data using JSF dataTable
我想在JSF中使用h:dataTable
标签显示数据我显示的数据必须是这样的格式:
Name: XXXX
ID: 8989
Age: 32
我在网上看到了几个例子,告诉你如何显示这样的数据:
姓名ID年龄XXX 8989 32
由于dataTable
标签只有一个子标签h:column
和NO h:row
我遇到了问题。 有一个更好的方法吗? 我已经使用h:datable
和h:column
实现了我提到的第一种格式,所以首先我只写出第1列中的所有列标题,然后写出column2中的所有值。 我面临的问题是,当其中一个值为空时,下一个值将打印在其位置并且数据显示错误,这实际上是格式化问题。 当数据为空时,它应为其留出空间,然后在下一行中打印下一个值。 希望我有意义,任何想法都会受到高度赞赏。
我尝试添加以下内容:
<h6><h:outputText value="#{empty imeiInfo.userEmail ? ' ' : imeiInfo.userEmail}"></h:outputText></h6><br/>
但是这里有一个语法错误,我无法弄清楚,我得到的信息是:
EL中的语法错误
有任何想法吗? 谢谢。
它只是针对非重复数据吗? 如果是这样,请使用<h:panelGrid>
例如:
<h:panelGrid columns="2">
<h:outputText value="Name:"/>
<h:outputText value="#{person.name}"/>
<h:outputText value="ID:"/>
<h:outputText value="#{person.id}"/>
<h:outputText value="Age:"/>
<h:outputText value="#{person.age}"/>
</h:panelGrid>
如果是重复数据(即多个'人'),那么根据您使用的其他库,您有许多选项。 例如:
1:使用Facelets <ui:repeat>
构建自己的表(您可以对<c:for>
执行相同操作)。 例如:
<table>
<ui:repeat value="#{myBean.persons}" var="person">
<tr>
<td>
<h:outputText value="Name:"/>
</td>
<td>
<h:outputText value="#{person.name}"/>
</td>
</tr>
<tr>
<td>
<h:outputText value="ID:"/>
</td>
<td>
<h:outputText value="#{person.id}"/>
</td>
</tr>
<tr>
<td>
<h:outputText value="Age:"/>
</td>
<td>
<h:outputText value="#{person.age}"/>
</td>
</tr>
<tr>
<td colspan="2">
 
</td>
</tr>
</ui:repeat>
</table>
编辑:我没有尝试这个,但你应该能够在第一个例子( <h:panelGrid>
)中用<c:for>
来包围重复元素。 <c:for>
在<h:panelGrid>
之前处理。 应该管用。
我不确定你想要如何呈现你的桌子。 如果您能提供表格的JSF代码,我认为这对我们有帮助...
但是,关于这一点:
当数据为空时,它应为其留出空间,然后在下一行中打印下一个值
也许你可以试试这样的东西:
<h:outputText value="#{empty aRecord.name ? ' ' : aRecord.name}"/>
如果记录的名称为空,此代码将呈现不可破坏的空间,否则将呈现记录的name
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.