<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="test.model.*" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c_rt" uri="http://java.sun.com/jstl/core_rt" %> <% //List<FileBrowsingInfo> fileBrowsingInfoList = (List<FileBrowsingInfo>)request.getAttribute("fileBrowsingInfoList"); %> <c_rt:set var="fileBrowsingInfoList" value='<%=request.getAttribute("fileBrowsingInfoList")%>' /> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>파일 목록</title> </head> <body> <c:forEach items="${fileBrowsingInfoList}" var="info"> <c:if test="${info.uploadCompleted}"> </c:if> <c:if test="${!info.uploadCompleted}"> </c:if> <c:out value="${info.name}"></c:out> <br /> <c:set var="childList" value="${info.childList}"></c:set> <c:forEach items="${childList}" var="childInfo"> <c:out value="${childInfo.fileName}"></c:out> <br /> </c:forEach> </c:forEach> </body> </html> |
1. jstl 사용시의 변수 scope이 스크립틀릿의 변수와는 약간 다르단다. http://lonelycat.tistory.com/389
그래서 c_rt:set을 이용해서 변수 정의. (value 가 들어가는 자리에 표현식을 쓰기 위해서는 RT 기반의 태그를 사용해야 된다.)
2. <c:out value="${info.name}"></c:out> 에서 info 클래스에 name에 대한 getter가 존재해서 사용가능.
마찬가지로 <c:set var="childList" value="${info.childList}"></c:set> 에서도 childList에 대한 getter가 존재(getChildList).
getter/setter 만 잘 맞춰주면 문제없는 듯.
3. <c:if test="${info.uploadCompleted}"> 또는 <c:if test="${!info.uploadCompleted}"> 처럼 boolean 형도 사용가능.
uploadCompleted가 boolean으로, isUploadCompleted/setUploadCompleted의 get/set 메소드가 존재.
'프로그래밍 > Web' 카테고리의 다른 글
[javascript] 전화번호 형식으로 바꾸기 (0) | 2010.03.08 |
---|---|
[javascript] DOM 스크립트 (0) | 2010.01.15 |
[jsp] jstl 설명 (0) | 2010.01.08 |
[jsp] jstl 설치 (0) | 2010.01.08 |
[servlet] 서블릿에서 jsp로 포워드하기 (0) | 2010.01.07 |