본문 바로가기

JAVA개발

[JAVA 개발] JSTL 확장자명 찾기(c:forTokens)

먼저 jsp 페이지 상단에 taglib을 선언해 줍니다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

java Controller를 작성합니다.

@RequestMapping("/jstl_ex3")
	public String jstl_ex3(){
		
		return "jstl_ex3";
	}

다음은 jsp페이지 소스를 작성합니다.

<body>
 <c:set var="filename" value="koala.jpg" />
 <!-- 확장자가 대문자일경우를 고려하여 소문자로 파일을 변경한다. -->
 <c:set var="fileNm" value="${fn:toLowerCase(filename)}" />
 <!-- 문자열들을 .으로 split 한후 c:forTokens을이용하여 문자열들을 iterator한다 -->
 <c:forTokens var="token" items="${fileNm}" delims="." varStatus="status">
 <!-- 파일명중간에 "." 이 존재할수도 있으니 항상 status.last(마지막번째) 를 실행해주어야 한다 -->
  <c:if test="${status.last}">
   <c:choose>
    <c:when test="${token eq 'hwp'}">
     ${filename}::::한글파일
    </c:when>
    <c:when test="${token eq 'xsl' || token eq 'xlsx'}">
     ${filename}::::엑셀파일
    </c:when>
    <c:when test="${token eq 'jpg' || token eq 'png' || token eq 'bmp' }">
     ${filename}::::이미지파일
    </c:when>
   </c:choose>
  </c:if>
 </c:forTokens>
</body> 

jsp 소스를 보시면 임의로 filename에 값을 koala.jpg로 주었습니다.

해당 값을 koala.xsl로 주시면 엑셀파일로 페이지에 표기가 됩니다.

실행화면을 확인하겠습니다.