728x90
반응형
SMALL
안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)
* JSTL이란?
JSTL(JSP Standard Tag Library)는 표준 태그 라이브러리로, jsp 페이지에서 일반적인 핵심 기능을 캡슐화하여 제공하는 jsp 태그 컬렉션입니다. jsp 입문 단계를 공부하며 어렵게 느껴졌지만, 이는 프레임워크(Framework) 개발을 할 때는 JSTL의 사용이 많기 때문에 자바 고급 개발자가 되기 위해 반드시 알아야 할 분야로 뽑습니다.
JSTL은 일반적인 반복,조건의 로직이나 포매팅 작업, XML 문서, SQL 태그의 조작을 위한 태그를 사용할 때 사용됩니다.
1. 변수(속성)
1) 변수 선언
*변수 선언(<c:set var="변수명" value='리터럴' scope='스코프영역지정(생략가능)' >)
- 변수를 선언하고 초기값을 대입해주는 기능을 제공
- 해당 변수를 어떤 scope에 담아줄건지 지정가능함(생략시 pageScope)
=> 즉, 해당 scope영역에 setAttribute라는 메소드를 이용해서 key+value로 담아놓는것과 같다.
=> c:set을 통해 선언된 변수는 EL로 접근해서 사용 가능(단, 스크립팅 원소는 접근 불가)
* 주의사항
- 변수는 타입(자료형)을 별도로 지정하지 않음
- 반드시 해당 변수의 담아두고자 하는 초기값 속성을 무조건 셋팅해줘야함.
<c:set var="num1" value="10"/> <!-- 주로 이렇게 사용됨 -->
<c:set var="num2" value="20" scope="request"/> <!-- 한번 변수로 지정한 뒤에 불러올 수 있다. -->
num1의 변수값 : ${num1 } <br>
<%-- <%= num1 %> 스크립트원소로 표현 불가능 --%>
num2의 변수값 : ${num2 } <br>
<c:set var="result" value="${ num1 + num2 }" scope="session" /> <!-- el안에서 자동으로 형변환 되서 문자열 계산도 잘됨 -->
<!-- result값은 jsp에 있으면 못찾음. java파일에서 저장하는것이 유지보수에 좋다 -->
result 변수값 : ${ result } <br><br> <!-- session값을 가져온 것 -->
<!--
변수명만 지정하여 제시하여 공유범위가 가장 적은 스코프부터 값을 찾아지게됨.
-->
<!-- 값을 잘 담고 있는지 확인 -->
${ num1 } <br>
${ pageScope.num1 } <br>
${ num2 } <br>
${ requestScope.num2 } <br>
${ sessionScope.result } <br>
<c:set var="result" scope="request">
99999
</c:set>
<!-- requestScope가 더 작기때문에 먼저 찾아져서 화면에 99999 출력됨 -->
${ result } <br>
<화면 출력모습>
2) 변수 삭제
* 변수 삭제 (< c:remove var="제거하고자하는 변수명" scope="스코프영역지정(생략가능)">) <!-- scope="스코프영역지정(생략가능) -> 모든 scope의 값을 찾아 지워줌 -->
- 해당 변수를 scope에서 찾아서 제거하는 태그
- scope 지정생략시 모든 scope에서 해당 변수를 다 찾아서 제거함
=> 해당 scope에 .removeAttribute를 사용해서 제거하는 것과 동일함.
삭제전 result : ${result } <br><br>
1) 특정 scope 지정해서 삭제 <br>
<%-- <c:remove var="result" scope="request"/> --%> <!-- 주석처리로 값이 다시 99999로 바뀐 상태 -->
request에서 삭제후 result에 담긴값 : ${result } <br><br>
2) 모든 scope에서 삭제시키기 <br>
<c:remove var="result"/>
삭제후 result : ${result } <!-- 모든 scope에 있는 result값이 삭제되어 출력되는 값이 없다. -->
<화면 출력모습>
3) 변수 출력
* 변수출력 (<c:out value="출력하고자하는 값" default="기본값(생략가능)" escapeXml="true(기본값, 생략가능)">)
- 데이터를 출력하고자 할 때 사용하는 태그
- 기본값 : value에 출력하고자하는 값이 없을경우 대체문구 추가 (생략가능)
- excapeXml : 태그로써 해석해서 출력할지 여부(생략가능, 생략시 true가 기본값.) <!-- \n과 <br>태그를 굳이 변환하는 과정이 필요없어짐 -->
result : <c:out value="${result }"/> <br>
default를 설정한 result : <c:out value="${result }" default="없어요" /> <br><br>
<!-- escapeXml 테스트 -->
<c:set var="outTest" value="<b>출력테스트</b>" />
<c:out value="${outTest }" /> <!-- escapeXml 생략시 기본값이 true == 태그로써 해석이 안된다. -->
<c:out value="${outTest }" escapeXml="false"/> <br> <!-- false가 출력하겠다는 것임 -->
* JSTL Core Tag의 종류
728x90
반응형
LIST
'⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆ > JSP' 카테고리의 다른 글
[JSP] JSTL Core Library - 3. 조건문 - choose <c:choose> ,<c:when>, <c:otherwise> (0) | 2023.07.28 |
---|---|
[JSP] JSTL Core Library - 2. 조건문 - if <c:if test="조건식"> (0) | 2023.07.28 |
JSP - JSP와 스크립틀릿, 내장객체 종류 (0) | 2023.07.12 |
이클립스 Servlet (doPost 방식-delete문-update) (1) | 2023.07.05 |
이클립스 Servlet (doPost 방식-updatePwd) (0) | 2023.07.05 |