Java2EE Framework/Struts1.3

타일즈와 JSTL을 같이 사용할 때 주의할 점

본클라쓰 2010. 9. 10. 11:10

 

1. 레이아웃 페이지에 JSTL 태그 선언을 한다고 사용할 페이지에서 JSTL 태그 선언을 생략 못함.

 

 레이아웃 페이지에서 JSTL태그 선언을 하고 실제 JSTL을 사용하는 페이지에서 JSTL 태그 선언을 하지 않는다면 적용되지 않습니다. 레이아웃 페이지는 JSTL를 사용하지 않는다면 굳이 선언할 필요없습니다. 하지만 JSTL을 사용하는 페이지 상단에 반드시 태그 선언이 되어 있어야 됩니다.

 

<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:forEach items="${list}" var="depart" >
 부서명 : <c:out value="${depart.departmentName}" />, 부서장 : <c:out value="${depart.manager}"/><br>
</c:forEach>

  

2. 객체 콜렉션을 보내 페이지에 표현하기

 

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

PersonDao dao = PersonDao.getInstance(); 

list = dao.getList(); 

 

request.setAttribute("list", list);

 

 ActionServlet 페이지에 위와 같이 작성하여 request.setAttribute() 메소드를 사용하여 뷰(view)페이지로 전달합니다. 뷰 페이지는 다음과 같이 작성되면 객체 콜렉션을 출력합니다.

 

<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 

<c:forEach items="${list}" var="person" >
 이름 : <c:out value="${person.name}" />, 나이 : <c:out value="${person
.age}"/><br>
</c:forEach>

 

 이 때 Person 객체는 속성과 getter & setter 가 있는 데이터 객체입니다. 이 때 객체의 속성에 접근할 때 getting 메소드를 사용하여 접근하는것이 아니라 표현언어로 속성에 바로 접근할 수 있습니다. 속성명은 대소문자를 구분하기 때문에 데이터 객체의 속성명과 정확하게 일치해야 합니다.