java - 如何使用jsf 2.0显示带有空白行的数据表

标签 java datatable jsf-2 facelets

我试图在页面加载时显示一个包含 10 行的空数据表,当我尝试使用下面的代码时,它不显示任何行。

<h:dataTable id="d" value="" bgcolor="#9AC8E6" border="10" cellpadding="5" cellspacing="3" rows="10" width="100%" dir="LTR" frame="hsides" rules="all" >
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Student Number" />
                        </f:facet>
                        <h:inputText value="#{10}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Student Name" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Standard" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Marks" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Percentage" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>            
                </h:dataTable>

需要帮助来显示具有空白列和行的数据表

更新

根据给定的解决方案我尝试了这种方式但无法解决问题

   <h:dataTable id="d" value="#{inquiryBean.blankList}" var="emptyBean" bgcolor="#9AC8E6" border="10" cellpadding="5" cellspacing="3" rows="10" width="100%" dir="LTR" frame="hsides" rules="all" >
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Item Number" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.itemNumber}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Material" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.material}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Description" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.description}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Unit" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.unit}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Quantity" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.quantity}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Delivery Date" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.deliveryDate}" > </h:inputText>
                    </h:column>
                </h:dataTable>

## Bean 类 ##

//getters and setters
List blankList = new ArrayList();

public List getBlankList() {
    InquiryBean bean = new InquiryBean();
    bean.setItemNumber("");
    bean.setMaterial("");
    bean.setDescription("");
    bean.setQuantity("");
    bean.setUnit("");
    bean.setDeliveryDate(null);
    return blankList;
}

我错过了什么吗???

最佳答案

您需要指定 value 属性的值(抱歉,没有双关语)。这是指定数据表行的方式。现在的方式是指定输出表中不应有(空)行(如果它有效)。

这就是为什么我的建议是声明一些 bean,它有一个 10 元素集合可用作某些属性(如果这是您的偏好)。并在 value 属性中有一个指向该 bean 属性的 EL 表达式。

您可以看看some examples on Internet (看看那里的DataTableBean)。

基本上你应该:

  • 定义一个 bean(如果是普通 JSF,则在 faces-config.xml 中)
  • 定义一个包含 10 个元素的集合的 Bean 实现类
  • 使用 h:dataTable 组件的 value 属性中的 EL 表达式指向此集合。

更新:

根据您的更新。现在您已经定义了一个看起来合适的 bean 及其实现类。但是,您的“blankList”是一个空集合(正如名称所示)。如果您希望数据表中有 10 行,您基本上需要对集合调用 add() 方法 10 次(或类似的操作)。

关于java - 如何使用jsf 2.0显示带有空白行的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027799/

相关文章:

java - 使用java将数据集随机分为训练和测试

java - Twitter 的架构图是什么样子的?

javascript - jQuery Datatables 按钮显示为链接..而不是按钮

c# - 如何限制数据表中的行数?

java - 卡在 ManagedBean Pre ProcessingException : Unexpected error processing managed bean

Java:如何获取xml节点路径

java - DnD - 为什么拖动的标签显示在其他组件下方?

javascript - 如何使用服务器端数据源在由 JQuery DataTable 生成的表上添加行号

java - 在 JSF 中显示数据库数据时出现问题

jsf-2 - 如何在 Primefaces 3 中通过 Java 代码设置主题?