JSTL

문준혁·2023년 6월 13일
0

JSTL 활용해보기

먼저 라이브러리를 페이지에 적용?

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

prefix 에 지정한 문자열로 사용이 가능하다
만약 prefix="sssss" 로 했을시
<sssss:xxx> 이런식으로 사용이 가능하지만 c를 사용하는게 기본

<c:forEach var="tmp" begin="0" end="9" step="1">
	${tmp}
</c:forEach>

코드 실행시 출력화면

tmp에 begin 인 0부터 end인 9까지 step인 1씩 늘려가며 대입하는 반복문이다

<% %> 를 활용한 JAVA로 작성하면

	<% for(int i = 0 ; i < 10 ; i++){ %>
		<%= i %>
	<%} %>

와 동일하다



forEach에 ArrayList도 사용할수있다

<%
List<String> names = new ArrayList<>();
names.add("김1번");
names.add("김2번");
names.add("김3번");
// request scope에 테스트용 데이터 담기
request.setAttribute("list",list);
%>
<ul>
	<c:forEach var="tmp" items = "${list}">
		<li>${tmp}</li>	
	</c:forEach>
</ul>

실행시

테스트를위해 request scope에 임시로 담아놓았다

items에 list 를 넣어서 순서대로 출력도 가능

c:if

<c:if test="${10 % 2 eq 0}">
	<p> 10은 짝수입니다 </p>
</c:if>
<c:if test="${10 % 2 eq 1}">
	<p> 11은 짝수 입니다 </p>
</c:if>

test 안의 값이 true 일때만 안의 내용이 실행된다? 적용된다?
위에만 true 기 때문에 위쪽 p요소만 출력되고 아래 p요소는 출력이 안된다

c:choose

<%
int score = 85;
request.setAttribute("score",score);
%>
<c:choose>
	<c:when test="${score >= 90}"> A </c:when>
    <c:when test="${score >= 80}"> B </c:when>
    <c:when test="${score >= 70}"> C </c:when>
	<c:otherwise> F </c:otherwise>
</c:choose>

test를 만족할경우만 c:when 안의 내용이 실행된다
전부 만족 안할시 c:otherwise 가 실행된다

score >= 80을 만족하는 B가 출력되고 바로 종료됨
(그 뒤에는 실행을안함 method 에서의 return처럼)

c:formatNumber

	<p>
		파일의 크기는
		<fmt:formatNumber value="123456789" pattern="#,###"/>
		byte 입니다.
	</p>
    <p>
		<fmt:formatNumber value="2500000" type="currency" currencySymbol="$" ></fmt:formatNumber>
	</p>
    <p>
		<fmt:formatNumber value="2500000" type="currency"></fmt:formatNumber>
	</p>


pattern 에 지정한 양식대로 출력 만약 #,##으로 할시 1,23,45,67,89 가 출력됨

c:forTokens

<% request.setAttribute("hobby","baseball/soccer/game"); %>

<c:forTokens items="${hobby }" var="tmp" delims="/">
	<li>${ tmp}</li>
</c:forTokens>

delims 인 / 에 맞춰서 나눠서 출력해줌

profile
이제 시작 개발

0개의 댓글