【问题标题】:Iterate through List in JSP using JSF使用 JSF 遍历 JSP 中的 List
【发布时间】:2013-12-22 01:32:14
【问题描述】:

我是 JSF 的新手,我正在尝试在 JSP 中遍历 List,所以我使用的是 h:dataTable,但由于某种原因没有打印出来,但也许我只是忘记了什么?

            <h:dataTable value="#{personBean.person.address}" var="addr">
                <h:column>
                    <f:facet name="header">
                       <h:outputText value="#{postcode}"/>
                    </f:facet>
                </h:column>
            </h:dataTable>

这些是我的导入:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
...

这目前确实有效/打印出一个值:

<h:outputText value="#{personBean.person.name}" />

【问题讨论】:

    标签: java jsp jsf


    【解决方案1】:

    假设:List&lt;Address&gt; addresses 是 Person 对象的一个​​属性。而 Person 是您的 PersonBean 的一个属性。

    然后你可以使用如下所示的数据表遍历地址列表:

     <h:dataTable value="#{personBean.person.addresses}" var="addr">
                <h:column>
                    <f:facet name="header">
                       <h:outputText value="Postcode"/>
                    </f:facet>
                    <h:outputText value="#{addr.postcode}"/>
                </h:column>
            </h:dataTable>
    

    【讨论】:

    • 在我的personBean 中,我有一个Person 类,它有一堆自己的变量,例如Name、Surname 和List&lt;Address&gt; addresses。 Address 是一个单独的类,其中包含 Street、Postcode 等变量。我没有 addressList 变量?
    • 查看我修改后的解决方案。如果它适合你,你可以将我的答案标记为正确。
    • 我试过了,但它只是将“邮政编码”打印为字符串,而不是实际值
    • PersonBean 和 Person 都是带有 getter 和 setter 变量的类。虽然 PersonBean 不直接与 Person 通信,但它使用:@EJB private PersonService personService; via person = personService.getPerson(1); 但是,&lt;h:outputText value="#{personBean.person.name}" /&gt; 确实在同一个 JSP 中正确打印出值。我感觉这与版本或 JSP 导入有关
    • 如果 有效,则 也应该工作。确保您的 Person 对象中的地址列表不为空。
    猜你喜欢
    • 2013-08-11
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2012-09-23
    • 2017-03-15
    相关资源
    最近更新 更多