반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[JSP] JSTL Core Library - 1. 변수(속성) (+ JSTL Core Tag의 종류) 본문

⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆/JSP

[JSP] JSTL Core Library - 1. 변수(속성) (+ JSTL Core Tag의 종류)

yeonee 여니 2023. 7. 28. 18:48
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

yeonee 블로그 : 네이버 블로그

예쁘고 맛있게 먹고 건강하게,강인하지만 온화하게 행하라. ※맛스타운스타일상 인스타 www.instagram.com/s2._.y25n ※맛집감성일상 유튜브https://youtube.com/channel/@S2_yeonee 티스토리https://yeoneeluv.tistory.co

blog.naver.com

 

* 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) 변수 삭제

       * 변수 삭제 (&lt; c:remove var="제거하고자하는 변수명" scope="스코프영역지정(생략가능)"&gt;) <!-- 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) 변수 출력

        * 변수출력 (&lt;c:out value="출력하고자하는 값" default="기본값(생략가능)" escapeXml="true(기본값, 생략가능)"&gt;)
	- 데이터를 출력하고자 할 때 사용하는 태그
	- 기본값 : 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