JSTL 사용하기

코드 죄수 2022. 10. 13. 23:55

여러 라이브러리중 jstl.jar 파일과 standard.jar 파일을 추가한다.

 

 

<c:set>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<html>
<head>
  <title>JSTL: Core Library</title>
</head>
<body bgcolor="#FFFFFF">

<h3>&lt;c:set&gt;</h3>
<c:set value="Hello World" var="msg" />

msg : ${msg} <BR>
msg : <%= pageContext.getAttribute("msg")  %><BR>

</body>
</html>

<c:set> 태그를 이용하여 msg라는 변수에 "Hello World"를 저장하고 뽑을 수 있다.

${} - jQuery와 똑같이 쓰고 el태그라고 한다.

 

 

 

<c:forTokens>

<c:forTokens items="123-456-789" delims="-" var="sel">
	${sel}<br/>
</c:forTokens>

토큰을 기준으로 반복한다.

-를 기준으로 반복하여 출력한 결과이다.

 

 

 

<c:if>

<c:set value="superman" var="name"/>  
<c:if test="${name == 'superman' }" var="result">
	test result : ${result }
</c:if>

name에 superman을 넣고 <c:if>로 확인하여 결과 값을 result에 넣는다.

당연히 if문에 대한 결과 이기때문에 true가 출력되는 것을 볼 수 있다.

 

 

 

<c:choose>,<c:when>,<c:otherwise>

<form>
<select name="eng">
	<option>-</option>
	<option>a</option>
	<option>b</option>
	<option>c</option>
	<option>d</option>
</select>
<input type="submit" value ="선택">
</form>
<hr/>

<c:choose>
	<c:when test="${param.eng == 'a' }">a를 선택</c:when>
	<c:when test="${param.eng == 'b' }">b를 선택</c:when>
	<c:when test="${param.eng == 'c' }">c를 선택</c:when>
	<c:otherwise>다른것을 선택</c:otherwise>
</c:choose>
<br/>

<c:choose>는 switch문이다.

<c:when>은 case이고 

<c:otherwise>는 default라고 생각하면 된다.

 

 

 

<c:catch>

<c:catch var="errmsg">
	<%=9/0 %>
</c:catch>

error message : ${errmsg }

 

<c:catch>는 catch문이라고 생각하면된다.

지금 9/0을 하면 발생하는 exception을 errmsg에 저장한다.

만약 exception이 발생하지 않는다면 errmsg에 아무것도 저장되지 않는다.

 

 

 

<c:import>

<c:import url="set.jsp" var="myurl"/>
<c:out value="${myurl }" escapeXml="false"/>

 set.jsp를 현재페이지에서 띄울수 있다.

만약 escapeXml에 true를 준다면  HTML 코드 그대로 나오게 된다.

 

 

 

<c:remove>

<c:remove var="msg"/>

msg변수에 담긴 값을 없앤다.

 

 

 

 

<c:redirect>, <c:param>

<c:redirect url="/jstltest/set.jsp">
	<c:param name="eng">a</c:param>
</c:redirect>

sendRedirect를 이렇게 사용한다.

<c:param>을 이용하여 파라미터 값을 줘서 보낼 수 있다.

 

 

 

 

<c:url>

<c:url value="/jstltest/set.jsp" var="target">
	<c:param name="eng">a</c:param>
</c:url>

단순 출력: ${target }<br/>
링크 연동: <a href="${target }">choose.jsp - a를 선택</a>

<c:url>태그를 사용하여 target 변수에 url을 담는다.

 

 

 

<c:forEach>

<c:forEach var="product" items="${productlist }" varStatus="status">
		<option>${product}</option>
</c:forEach>

<c:foreach> items에 담긴 것을 가지고 foreach처럼 var에 넣으면서 반복한다.