1. JSTL indexOf 사용

${fn:indexOf("jstl indexOf","jstl") }
${fn:indexOf("jstl indexOf","indexOf") }
${fn:indexOf("jstl indexOf","text") }

 

결과값

0
5
-1

 

${fn:indexOf("내용","찾는 문자열") }

찾는 문자열이 내용에 있으면 문자열이 시작하는 index 값을 리턴해 줍니다.

만약 찾는 문자열이 없다고 하면 -1이라는 값을 리턴이 된다.

JSTL length 및 substring 함수 사용

1. length 함수 사용

<c:set var="phoneNum" value="010-1234-5678"/>1
${fn:length(phoneNum)}

 

결과값

 13

 

2. substring 함수 사용

<c:set var="phoneNum" value="010-1234-5678"/>
${fn:substring(phoneNum,0,3) }<br/> 
${fn:substring(phoneNum,4,8) }<br/>
${fn:substring(phoneNum,9,13) }<br/>

 

결과값

010
1234
5678

 

JSTL 날짜 포맷 <fmt:formatDate> <fmt:parseDate> 

fmt:parseDate - 문자열 -> Date 타입으로 변경

fmt:formatDate - Date 타입 -> 문자열으로 변경

 

1. JSTL <fmt:parseDate>

<fmt:parseDate var="date1" value="2019-01-01" pattern="yyyy-MM-dd"/> 
${date1}

 

결과값

Tue Jan 01 00:00:00 KST 2019

 

 

2. JSTL <fmt:formatDate>

<fmt:formatDate  var="date2" value="${date1}" type="DATE" pattern="yyyy-MM-dd"/>
${date2}

 

결과값

 2019-01-01

 

 

3. pattern 형식

y(The year) 

M(The month)

d(The day of the month)

h(The hour(12-hour time))

시(12)

H(The hour(24-hour time))

시(24)

m(The minute)

s(The second)

 

 

 

1. <fmt:formatNumber>숫자 포맷

<fmt:formatNumber var="num1" value="123456789" type="number"/>
<fmt:formatNumber var="num2" value="123456789" type="currency" currencySymbol="W"/>
<fmt:formatNumber var="num3" value="123.456789" pattern="0000.000"/>
<fmt:formatNumber var="num4" value="0.01" type="percent"/>
 
${num1}<br/>
${num2}<br/>
${num3}<br/>
${num4}

 

결과

123,456,789
₩123,456,789
0123.457
1%

 

2. <fmt:parseNumber> 숫자 파스

<fmt:parseNumber var="num1" value="1,234,567.89" type="number"/>
<fmt:parseNumber var="num2" value="123456789abcdef"  type="number" />
 
${num1}<br/>
${num2}  

 

 

결과

1234567.89
123456789

 

숫자 포맷 옵션

value

숫자 입력 

type

number|percent|currency

var

입력 안하면 곧바로 출력

pattern

패턴 사용 ex)00.00

 

1. JSTL switch문 <c:choose>, <c:when>, <c:otherwise>

<c:choose>
 <c:when test="${num eq 50 }">
  50
 </c:when>
 <c:when test="${num > 50 }">
  50보다 큰 수
 </c:when>
 <c:when test="${num < 50 }">
  50보다 작은 수 
 </c:when>
 <c:otherwise>
  수가 아닙니다. 
 </c:otherwise>
</c:choose>

 

 

1. JSTL <c:forEach> 태그

<c:forEach var="list"  items="${list}"  [begin="0"] [end="10"] [step="1"] [varStatus="status"]>
 이름 : ${list.name}<br/> 
 나이 : ${list.age}<br/>
 주소 : ${list.addr}<br/> 
</c:forEach>

 

2. 사용되는 옵션 값

begin 

리스트, 배열 반복 시작 번호( 초기값 : 0 ) 

end

리스트, 배열 반복 마지막 번호(초기값 : items에 들어있는 리스트 size)

step

리스트, 배열이 반복을 할때 마다 증가되는 값(초기값 : 1)

varStatus

리스트, 배열을 반복시 상태가 들어있는 변수

 

3. varStatus 상태값 표기

index

현재 리스트, 배열의 번호(0부터 시작)

count

현재 리스트, 배열의 반복 횟수(1부터 시작)

first 

첫번째 반복인지 확인(true|false)

last

마지막 반복인지 확인(true|false)

 

1. JSTL <c:if> 태그

<c:if  test="${name eq '홍길동' }" [var="value"] [scope="page|request|session|application"] >
 ${name}
</c:if>

 

var - 결과 값을 담을 변수

scope - 결과 값을 담은 변수의 생명주기

 

2. 사용되는 비교 연산자

 eq(==)

${name eq '홍길동'}, ${name eq 10}, ${name eq null}

 ne(!=)

${name ne '홍길동'}, ${name ne 10}, ${name ne null} 

 empty(List,배열,문자열이 비어있으면 참)

${empty name}

 not empty(List,배열,문자열이 값이 있으면 참)

${not empty name}

 and(&&)

${name1 eq '홍길동1' and name2 eq '홍길동2'}

 or(||)

${name1 eq '홍길동2' or name2 eq '홍길동2'}

 not(!)

${not name eq '홍길동'}

 

1. JSTL <c:set> 태그

<c:set var="name" value="${name}" [property="property"] [scope="page|request|session|application"]/> 

property - 자바 빈 객체 또는 Map 객체

scope - 변수의 생명주기

 

 

2. JSTL <c:remove> 태그

<c:remove var="name" [scope="page|request|session|application"]/>

 

scope - 변수의 생명주기

 

 

3. JSTL <c:out> 태그

<c:out var="name" [default="default"] [escapeXML="true|false"] />

 

default = name 값이 없을때 표시되는 값

escapeXML = '<','>' 와 같은 특수문자 치환

+ Recent posts