0

我有 2 个 java 类。一个是 java bean,另一个是这个 java bean 类的实例集合。

public class Quiz{ 
  private int id;
  private String title;
  //getters and setters 
}

public class Quizzes{
  List<Quiz> quizList = new ArrayList<Quiz>;
  public Quizzes{
    //constructor to add Quiz objects to quizList
    Quiz curQuiz = new Quiz();
    ...
  }
  public List<Quiz> getQuizList(){
    return this.quizList;
  }

}

在我的 JSP 中,我想访问例如测验的 ID(或标题)。我怎样才能做到这一点?我唯一的想法是遍历 quizlist 中的对象并调用 getId 方法,然后将此整数值添加到列表中。例如像这样:

public List<Integer> getId(){
    List<Integer> idList = new ArrayList<Integer>();
    ListIterator<Quiz> ir = quizlist.listIterator();
    int id;
    while (ir.hasNext()){
        Quiz curQuiz = ir.next();
        id = curQuiz.getId();
        idList.add(id);
    }
    return idList;
}

但是没有更好的解决方案吗?

4

2 回答 2

3

您可以查看<jsp:useBean>标签。相同的语法是

<jsp:useBean id= "attributeName" scope= "page | request | session | application" class= "yourPackage.yourClass"> </jsp:useBean>.

attributeName是您在 中设置的属性名称page, request, session or application scopeyourPackage.yourClass是你的 beanClass 即Quiz如果你想访问Quiz成员变量。

你可以在这里找到很好的例子

如果要遍历 jsp 中可访问的列表,则可以使用forEachtag.

<c:foreach jsp 遍历列表

<c:forEach var="window" items="${requestScope.quizList}">
    <c:out value="${quiz.id}"/> 
    <c:out value="${quiz.name}"/>
</c:forEach>
于 2013-07-04T08:30:54.343 回答
0

如果您只需要每次测验的 Id,您可以在测验中覆盖 toString() 函数:

public class Quiz{ 
  private int id;
  private String title;
  //getters and setters 
}

public class Quizzes{
  List<Quiz> quizList = new ArrayList<Quiz>;
  public Quizzes{
    //constructor to add Quiz objects to quizList
    Quiz curQuiz = new Quiz();
    ...
  }
  public List<Quiz> getQuizList(){
    return this.quizList;
  }

   @Override 
   public String toString(){
return getId();
  }

}

这样,当您调用 toString() 时,它将返回适当的 Id:

Quiz.toString(); 

您可以将迭代更改为:

public List<Integer> getId(){
    List<Integer> idList = new ArrayList<Integer>();
    ListIterator<Quiz> ir = quizlist.listIterator();
    while (ir.hasNext()){
        idList.add(ir.next().toString());
    }
    return idList;
}
于 2013-07-04T08:36:13.180 回答