JSTL – 使用forEach迭代用户定义的类
我需要将哪些方法添加到自定义Java类中,以便我可以迭代其中一个成员中的项目? 我找不到关于JSTL forEach标签实际如何工作的任何规范,所以我不确定如何实现它。
例如,如果我创建了一个通用的“ProjectSet”类,我想在JSP视图中使用以下标记:
...
基本类文件:
public class ProjectSet { private ArrayList projects; public ProjectSet() { this.projects = new ArrayList(); } // .. iteration methods ?? }
是否有任何接口我必须实现,如PHP的ArrayAccess
或Iterator
才能使其工作?
编辑:没有直接访问ArrayList本身,因为我可能会使用generics使用某种Set类,而JSP视图不应该知道类的内部工作。
Iterable接口提供此function:
public class ProjectSet implements Iterable { private ArrayList projects; public ProjectSet() { this.projects = new ArrayList (); } // .. iteration methods ?? @Override public Iterator iterator() { return projects.iterator(); } }
您可以根据需要交换迭代器逻辑。
是的,你应该实现java.util.Iterable