使用JSF数据表显示数据

使用JSF数据表显示数据,jsf,datatable,Jsf,Datatable,我想使用JSF中的h:dataTable标记显示数据 我显示的数据必须采用如下格式: Name: XXXX ID: 8989 Age: 32 我在网上看到了几个例子,告诉你如何显示 数据如下: Name: XXXX ID: 8989 Age: 32 姓名ID年龄 XXX 8989 32 因为dataTable标记只有一个子标记h:column,而没有h:row,所以我有 与此相关的问题。有更好的方法吗?我已经实现了第一个 我提到的格式使用了h:datable和h:co

我想使用JSF中的
h:dataTable
标记显示数据 我显示的数据必须采用如下格式:

Name:   XXXX
ID:  8989
Age:    32
我在网上看到了几个例子,告诉你如何显示 数据如下:

Name:   XXXX
ID:  8989
Age:    32
姓名ID年龄 XXX 8989 32

因为
dataTable
标记只有一个子标记
h:column
,而没有
h:row
,所以我有 与此相关的问题。有更好的方法吗?我已经实现了第一个 我提到的格式使用了
h:datable
h:column
,因此首先我只需写出第1列中的所有列标题,然后写出第2列中的所有值。我面临的问题是,当其中一个值为空时,下一个值将在其位置打印,并且数据显示错误,这实际上是一个格式问题。当数据为空时,应为其留出空间,然后在下一行中打印下一个值。 希望我是有道理的,任何想法都会很感激


我尝试添加以下内容:

<h6><h:outputText value="#{empty imeiInfo.userEmail ? '&#160;' : imeiInfo.userEmail}"></h:outputText></h6><br/>

但这其中有一个语法错误,我无法理解,我得到的信息是:

EL中的语法错误


有什么想法吗?谢谢。

我不确定您想如何呈现表格。我认为如果您能提供表的JSF代码,这将对我们有所帮助

然而,关于这一点:

当数据为空时,应将其保留 为其留出空间,然后打印下一页 下一行中的值

也许你可以试试这样的东西:

<h:outputText value="#{empty aRecord.name ? '&#160;' : aRecord.name}"/>


如果记录的名称为空,此代码将呈现一个不可分割的空格,否则它将呈现记录的
名称。

我不确定您希望如何呈现表。我认为如果您能提供表的JSF代码,这将对我们有所帮助

然而,关于这一点:

当数据为空时,应将其保留 为其留出空间,然后打印下一页 下一行中的值

也许你可以试试这样的东西:

<h:outputText value="#{empty aRecord.name ? '&#160;' : aRecord.name}"/>


如果记录的名称为空,此代码将呈现一个不可分割的空格,否则它将呈现记录的
名称。

是否仅用于非重复数据?如果是,请使用

例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>

如果是用于重复数据(即多个“人”),则根据您使用的其他库,您有许多选项。例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>
1:使用Facelets
(您也可以使用
)构建自己的表。例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>

 

编辑:我还没有尝试过这一点,但是您应该能够在第一个示例(
)中使用
来环绕,以呈现重复的元素。
之前得到处理。应该有效。

它只是用于非重复数据吗?如果是,请使用

例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>

如果是用于重复数据(即多个“人”),则根据您使用的其他库,您有许多选项。例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>
1:使用Facelets
(您也可以使用
)构建自己的表。例如:

<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>
<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">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>

 
编辑:我还没有尝试过这一点,但是您应该能够在第一个示例(
)中使用
来环绕,以呈现重复的元素。
之前得到处理。应该有用