【问题标题】:How to print ArrayList in JSF Facelets如何在 JSF Facelets 中打印 ArrayList
【发布时间】:2013-11-18 23:49:48
【问题描述】:

我一直试图在 JSF Facelets 中打印来自 ArrayList<String> 的值,但没有成功。该值存储在 ArrayList 中,但页面上的输出为空白。

豆文件:

import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="newCompanyName")
@SessionScoped
public class CompanyNames implements Serializable {

    private static final long serialVersionUID = 1L;

    private ArrayList<String> list = new ArrayList<String>();

    private String companyName;

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
        list.add(companyName);
        System.out.println("Size of array list is : "+list.size());

        for (String number : list) {
            System.out.println("Number = " + number);
        }       
    }

    public CompanyNames(String companyName) {
        this.companyName = companyName;
    }

public CompanyNames() {
}
}

这是我的来自 XHTML 1.0 过渡文件的 JSF 文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Insert title here</title>
    </h:head>

    <h:body> 
        <ui:repeat var="item" value="#{CompanyNames.list}"> 
            <h1>#{item}</h1> 
        </ui:repeat> 
    </h:body>
</html>

【问题讨论】:

    标签: jsf jsf-2 arraylist facelets


    【解决方案1】:

    代替

    <ui:repeat var="item" value="#{CompanyNames.list}"> <h1>#{item}</h1> </ui:repeat>
    

    使用

    <ui:repeat var="item" value="#{newCompanyName.list}"> <h1>#{item}</h1> </ui:repeat>
    

    您还需要 CompanyNames 类的 getList 方法

    public List<String> getList() {
        return this.list;
    }
    

    【讨论】:

    • 非常感谢詹姆斯。但是我之前尝试过使用 newCompanyName.list 但我缺少一个 getList 方法。我能够根据您的建议解决问题。谢谢:)
    • 如果您的问题已得到解答,请点击对勾图标通知其他用户您的问题已得到解决。
    【解决方案2】:

    使用companyNames.list 代替CompanyNames.list,您还需要listget() 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-08
      • 2023-04-03
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2013-03-12
      • 2010-12-28
      相关资源
      最近更新 更多