forTokens는 쉽게말해 "split" 기능이라고 생각하시면 되겠습니다.
"forTokens"태그는 JSTL의 c태그에 속합니다.
이 태그의 이해를 돕고자 파일확장자에 따른 이미지들을 보여주는 예를 들어보도록 하겠습니다.
조건은 다음과 같습니다.
확장자가 hwp일경우에는 한글파일이므로 한글이미지를보여주고
xls나 xlsx의 파일명일 경우에는 엑셀이미지를 보여주고
마지막으로 js파일일경우 자바스크립트이미지를 보여준다
위 조건으로 코드를 작성해보도록 하겠습니다.
<!-- 임의의 파일명을 위하여 filename이라는 변수에 value set --> <c:set var="originalfilename" value="jquery.min.js" /> <!-- 확장자가 대문자일경우를 고려하여 소문자로 파일명 변경 --> <c:set var="lowerfilename" value="${fn:toLowerCase(originalfilename)}" /> <!-- 문자열들을 .으로 split 한후 c:forTokens을이용하여 문자열들을 iterator한다 --> <c:forTokens var="ext" items="${lowerfilename}" delims="." varStatus="status"> <!-- 파일명중간에 "." 이 존재할수도 있으니 항상 status.last(마지막번째) 를 실행해주어야 한다 --> <c:if test="${status.last}"> <c:choose> <c:when test="${ext eq 'xls' || ext eq 'xlsx'}"> <!-- 엑셀파일일경우 --> ${originalfilename}(엑셀파일이미지) </c:when> <c:when test="${ext eq 'hwp'}"> <!-- 한글파일일경우 --> ${originalfilename}(한글파일이미지) </c:when> <c:when test="${ext eq 'js'}"> <!-- 자바스크립트파일일경우 --> ${originalfilename}(자바스크립트파일이미지) </c:when> </c:choose> </c:if> </c:forTokens>
코드의 originalfilename에 value값을
각각의 파일명을 변경하여서 테스트를 해보도록 하겠습니다.
테스트 결과 정상적으로 조건에 따른 파일 확장자 구분이 완료되었습니다.
fortoken에 대해서 이해가 가셨나요? ^^??
다음 포스팅에서 뵙도록 하겠습니다 (--)(__)
by 개발로짜
POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기 (1) | 2014.10.07 |
---|---|
DTO,VO에 정의되어있는 변수명 및 갯수에 관계없이 변수명과 value값 한방에 가져오기 (0) | 2014.10.07 |
Map객체의 key값을 읽어서 value값 한번에 추출하기 (0) | 2014.10.07 |
JSON 라이브러리를 이용하여 object생성과 문자열을 object형으로 변환해보기 (0) | 2014.10.06 |
ImageIO를 이용하여 자바 썸네일 이미지 생성코드 구현하기 (1) | 2014.10.06 |