JSTL

액션태그를 사용할 수 있도록 해주는 라이브러리 형태로 제공된 자바 패키지

JSP페이지에서는 스크립트릿, 표현식 등과 html코드가 뒤섞여 가독성이 떨어지게 된다

이러한 단점을 보완하기 위해 JSTL, 표준 태그 라이브러리를 사용한다

jstl.jar, standard.jar 다운 > 사용할 프로젝트의 WebContent > WEB-INF > lib 에 저장

 

*JSTL을 사용하기 위해서는 taglib 디렉티브를 추가해야한다

<%@ taglib prefix="식별자" uri="~" %>

 

이 액션태그, 표현언어의 단점

문법적으로 에러가 발생했을때 에러 메세지를 내보내지 않고, 출력이 안됨


EL(Expression Language)

표현언어

출력문으로 변수의 값, 수식계산, 객체의 속성값 등을 출력한다

ex) ${표현식}

   <%=num%> => ${num}


JSTL이 제공하는 태그의 종류(core, fmt, sql, xml, fn)

core 태그 라이브러리

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

 

- set 태그

변수 선언 및 초기화

<%
int num=10;
int num2=20;
%>
<!--jstl set태그 사용
자료형은 저장되는 값에 따라 자동으로 결정된다
scope="page"(default)/"request"/"session"/"application"-->
<c:set var="num" value="10"/>
<c:set var="num2">20</c:set>

 

 

객체 생성, 객체의 속성에 값 설정 및 출력

target의 대상 객체는 자바빈 객체(setter,getter메소드가 존재)나 Map이어야 한다

속성 값 출력의 경우 1번째 방법을 주로 사용한다

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<c:set var="map" value="<%=new java.util.HashMap() %>" />
<html>
<head>
<meta charset="UTF-8">
<title>jstl</title>
</head>
<body>
<%--
      map.put("id", "eun");
      형식) <c:set target="${객체명}" property="속성명" value="저장할값" /> 
 --%>
 <!--target=map이라고 적으면 map이 일반 변수인지 객체인지 알 수 없으므로 ${}로 구분해준다-->
 <c:set target="${map}" property="id" value="eun" />

<변수 map에 저장된 id의 value값 출력>
1. ${map.id}<br>
2. ${map['id']}<br>
3. ${map["id"]}<br>
</body>
</html>

 

전달받은 파라미터(name) 출력 

 이름: ${param.name}

 

- remove 태그

변수 삭제

scope를 지정하지 않으면 모든 영역의 동일한 변수명을 가진 변수를 삭제한다

<c:remove var="num" scope="page"/>
remove 후, num=${num} <br>
num+num2=${num+num2} <br>
<!--
remove 후, num1=
num+num2=20
-->
<!--num2=20-->

+ Recent posts