通过数组使用XML创建JSP

时间:2013-04-06 11:43:36

标签: java xml arrays jsp javabeans

在Eclipse中创建动态Web项目之后,我创建了一些JavaBean类,并为每个类创建了一个JSP文件,该文件将返回XML。

如:

豆子:

package com.beans;
public class Program {
    private String programID = "123";
    private String programName = "Morning show";
    private String startTime = "1365238800";
    private String endTime = "1365242400";
    public String getProgramID() {
        return this.programID;
    }
    public String getProgramName() {
        return this.programName;
    }
    public String getStartTime() {
        return this.startTime;
    }
    public String getEndTime() {
        return this.endTime;
    }
}

Jsp:

<?xml version="1.0" encoding="ISO-8859-1"?>
<%@ page contentType="text/xml;charset=ISO-8859-1" %>
<jsp:useBean id="programXML" class="com.beans.Program"/>
<Program>
    <ProgramName><% out.print(programXML.getProgramID()); %></ProgramName>
    <ProgramType><% out.print(programXML.getProgramName()); %></ProgramType>
    <startTime><% out.print(programXML.getStartTime()); %></startTime>
    <endTime><% out.print(programXML.getEndTime()); %></endTime>
</Program>

服务器为http://localhost:8080/Project/Program.jsp请求返回以下示例:

 <Program>
  <ProgramName>123</ProgramName> 
  <ProgramType>Morning show</ProgramType> 
  <startTime>1365238800</startTime> 
  <endTime>1365242400</endTime> 
  </Program>

我期望的XML是哪个。现在,我想修改bean / jsp文件以接收包含数组的XML,如下面的结构:

<ProgramList>
 <Program>
   ...
 </Program>
 <Program>
 ...
 </Program>
</ProgramList>

你能给我建议如何修改bean / jsp吗?

1 个答案:

答案 0 :(得分:3)

我认为您应该创建另一个名为ProgramList的Bean,其中只包含ArrayList<Program>

public class ProgramList {

  private ArrayList<Program> list;

  public ArrayList<Program> getList() {
    return this.list;
  }
  public void setList(ArrayList<Program> list) {
    this.list = list;
  }
}

然后,您可以在JSP中使用JSTL forEach来打印程序列表。

<?xml version="1.0" encoding="ISO-8859-1"?>
<%@ page contentType="text/xml;charset=ISO-8859-1" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="programList" class="com.beans.ProgramList"/>
<ProgramList>
  <c:forEach var="program" items="${programList.list}">
    <Program>
      <ProgramName>${program.programID}</ProgramName>
      <ProgramType>${program.programName}</ProgramType>
      <startTime>${program.startTime}</startTime>
      <endTime>${program.endTime}</endTime>
    </Program>
  </c:forEach>
</ProgramList>

如果您不熟悉JSTL教程,请查找here