자바(Java)/JAVA 2EE

ArrayList 컬렉션 객체 배열을 JSTL를 사용하여 표현하기

본클라쓰 2010. 3. 2. 18:01

ArrayList와 같은 컬렉션 객체 배열을 JSTL를 사용하여 표현하기

 

 ArrayList 같은 컬렉션 객체를 배열을 JSTL를 사용하여 페이지에 반복적으로 표현하는 방법입니다.

컬렉션 같은 배열 객체는 setAttribute() 메소드를 사용하여 데이터를 페이지에 포함시킵니다. 이 때, setAttribute() 메소드는 두 개의 파라미터를 가지는데 첫번째 파라미터는 데이터를 전달받은 페이지에서 사용할 변수의 이름이 되고 두번째 파라미터가 전달할 데이터입니다.

 

 

다음과 같은 Person 객체가 있습니다.

public class Person {

    private String name;

    private String age;

 

    getting & setting 

}

  

 아래는 객체 배열을 생성한 후 포함되는 페이지에 배열을 setAttribute() 메소드를 사용하여 넘겨주는 페이지 입니다.

<%

    ArrayList<Person> list = new ArrayList<Person>();


    Dao dao = Dao.getInstance();    // 디비 처리 객체 생성

    personList = dao.getList();       // 디비에서 리스트를 얻어 list 에 저장


    request.setAttribute("list", personList);  

%>


<jsp:forward page="list.jsp" />   또는 <jsp:include page="list.jsp" />


 

 위의 처리과정을 걷쳐 배열 객체를 받은 페이지에서는 JSTL의 c:forEach 태그에서 배열을 통해 반복 처리합니다.

<c:forEach var="person" items="list">

     이름 : <c:out value="${person.name}"/><br/>

     나이 : <c:out value="${person.age}"/>

</c:forEach> 

 items 속성에 setAttribue()메소드의 첫번째 파라미터로 지정한 변수명을 지정하고 var 속성에 반복문 안에서 사용할 변수를 지정합니다. 그 후 객체 배열은 하나씩 객체로 반복되며 객체에 접근할 때는 var 속성에 지정한 변수명을 사용하며 객체의 메소드와 속성은 var 속성에서 지정한 변수명을 통해 접근합니다.

 


객체 배열인 Vector 와 ArrayList

 JAVA 버전이 업 되면서 Vector 클래스보다는 ArrayList 클래스를 사용합니다. ArrayList 클래스는 List 인터페이스에 사이즈 변경이 가능한 배열의 구조의 구현된 클래스입니다. 또한, null을 포함한 모든 요소를 허용합니다.


HashTable 클래스도 현재 HashMap 클래스로 대체하여 사용합니다.