강의 정리하기/JSP와 Servlet

JSTL의 forTokens를 이용한 첨부파일 목록 출력하기

아민_ 2023. 7. 27. 19:04
728x90

<c:forTokens></c:forTokens>는 문자열을 지정한 구분자로 분리하여 하나씩 추출해주는 태그를 말한다.

 

글을 보면 첨부파일 목록이 있는 것을 확인할 수 있는데 이를 출력하고자 한다.

 

<c:forTokens var="fileName" items="${n.files}" delims="," varStatus="st">
	<a href="${fileName}">${fileName}</a>
    ,
</c:forTokens>

 

위의 사진과 같이 데이터베이스에서 files가 ","를 기준으로 나누어져 있는 것을 확인할 수 있다.

그래서 forToken의 delims를 이용해서 "," 기준으로 파일 문자열을 구분했다.

이 이름을 fileName이라고 하고 하이퍼링크를 걸기 위해서 <a></a> 태그를 사용해주었다.

그러고나서 우리는 파일을 ","로 구분하고 싶어 위와 같이 코드를 작성했는데

실행 결과를 보니까 아래의 사진과 같이 마지막 파일 뒤에도 ","가 들어있는 것을 확인할 수 있다.

마지막 파일 뒤에는 ","를 포함하지 않게 하기 위해서 사용하는 것이 <c:if></c:if>이다.

 

현재 출력되는 첨부파일

 

<c:forTokens var="fileName" items="${n.files}" delims="," varStatus="st">
	<a href="${fileName}">${fileName}</a>
		<c:if test="${!st.last}">
			,
		</c:if>
</c:forTokens>

마지막이 아닌 경우만 ","를 사용하기 위해서는 상태값을 먼저 확인을 해야한다.

그래서 varStatus 속성을 이용해서 파일의 마지막(.last)이 아닌 것만 ","를 출력하도록

<c:if></c:if> 조건문을 사용해주었다.

우리가 원하는 첨부파일

 

참고로 varStaus와 last는 아래의 글에서 다룬 적이 있으니 참고하자.

https://myblog1128.tistory.com/102#JSTL-1

 

JSTL(JSP Standard Tag Library)과 중간 정리

JSTL 아래의 코드는 이전 글에서 사용하던 View 페이지의 자바 코드이다. 이 반복문을 제거하기 위해서 사용하는 것이 JSTL이다. JSTL을 사용하기 위해서는 아래의 사이트에서 jar 파일을 다운받아야

myblog1128.tistory.com

 

728x90