Servlet/JSP-7

DeadWhale·2022년 4월 29일
0

Servlet/JSP

목록 보기
6/22
post-thumbnail

JSTL

JSP에서 자주,공통적으로 사용되는 자바 코드를 쉽고 , 표기법으로 간단히 할 수 있도록 태그화 하여 표준으로 제공하는 것

( if , for , Scope 변수 선언 , 데이터파싱(데이터 변환) )

기본적으로 JSTL Library를 등록해야 한다.

해당 JSP의 최상단에 < % @ % > 지시어를 이용해 선언해야한다.

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

prefix : 접두사 , 다른 태그와 구별하기 위해 사용한다
(태그 앞에 붙은 태그명.)

uri(Uniform Resource Locator) : 네트워크 상에서 자원을 구별하는 식별자 ( 자원을 구분하는 유일한 주소)
url(Uniform Resource Identifier) : 인터넷에서 특정 자원 위치를 지정(주소)

구별을 잘해야 한다 URI와 URL은 다른거다.


1. 변수 선언(C:Set)

(C 는 prefix로 지정한 별칭)

  • 변수를 선언하고 값을 초기화 하는 태그(초기화는 무조건 수행)
  • c:set 태그로 선언된 변수는 EL을 이용해 출력 할 수 있다.
    c:set은 내장객체에 속성을 추가하는 태그

C : SET 태그

  • var : 변수명
  • value : 대입되는 ㄱ밧
  • scope : 변수의 범위 ( Page(기본값) , request , session , application )

이때 선언 하면서 '/'닫아줘야 한다.

<c:set var="num" value="100"/>
<c:set var="num" value="200" scope="request" />

2. 변수 삭제(C:remove)

  • 이미 지정한 변수 (c:set / setAttribue() 으로 추가된 변수들) 삭제
  • 생성된 변수명여 여러개면 scope로 이용해 특저 변수만 선택할 수 있다.
  • scope 범위를 미지정하게 되면 변수명인 동일하면 범위 상관 없이 삭제

C : remove

  • var : 삭제하고 싶은 변수 이름
  • scope : 삭제하고 싶은 범위 ( 기본값 : 모든 범위)

3. 변수 삭제(C:if)

  • 조건문을 사용할 수 있는 태그

  • if문만 가능하고 else if ,else등은 불가능(else는 존재하지 않음)

  • c:if 의 속성

  • test: 조건을 작성하는 속성 단, %{EL}로만 작성할 수 있다

   <c:set var="temp" value="30"/>
   
   	<c:if test="${temp>20 }">
   		<!-- test에 작성된 조건이 참일때만 화면에 출력  -->
   		temp는 20보다 크다
    </c:if>
    <!-- else구문이 없어 반대되는 조건을 별도로 작성해야 한다. -->
    <c:if test="${temp<=20}">
    	temp는 20보다 작거나 같다.
    </c:if>

4. 조건문 if~else if~else

( c:choose , c:when , c:otherwise)

  • if의 else의 상황을 대처하기 위해 사용 가능하다

choose 라는 하나의 케이스 안에서 검사하는 형태

    <c:set var="temp2" value="9"/>
    <c:choose>
    	<c:when test="${temp2>10}">
    		temp2가 10보다 큼
    	</c:when>

    	<c:when test="${temp2<10}">
    		temp2가 10보다 작다
    	</c:when>
    
    	<c:otherwise >
    		temp2는 10이다
    	</c:otherwise>
    </c:choose>


5. 반복문 for / for(향상된)

( C : forEach )

  • 자바의 반복문처럼 활용한다 (+ 추가기능 몇개)

속성

  • var : 현재 반복 횟수에 해당하는 변수 (==int i 같은 느낌)
  • begin : 반복 시작 값
  • end : 반복 종료 값
  • step : 반복할때마다 증가할 값(증감식) , 미작성 시 기본값 1
  • varStatus : 현재 반복에 해당되는 상태 정보
    • 제공되는 값
      1) current : 현재 반복 횟수 또는 현재 접근 중인 객체
      2) index : 현재 객체가 몇 번째 인덱스인지 반환 (0부터 시작)
      3) count : 현재 반복문이 몇바퀴 반복 중인지 반환 (1부터 시작)
      4) first : 첫 번째 반복일 경우 true 반환
      5) last : 마지막 반복일 경우 true 반환

for문

<table border="1">
		<c:forEach var="i" begin="1" end="10" step="1"> 
		<tr>
			<th>${i}</th>
			<td>${i}번재 게시글입니다.</td>
		</tr>
		</c:forEach>
</table>	

향상된 for

	<h2>향상된 for문 사용</h2>
	<ul>
	<c:forEach var="str" items="${paramValues.lang }" varStatus="vs">
		<li>
			<c:if test="${vs.first}">
				<!-- 첫번째 반복인 경우 -->
				<span style ="color:red"> 첫번째 </span>			
			</c:if>
			<c:if test="${vs.last}">
				<!-- 마지막 반복인 경우 -->
				<span style ="color:blue"> 마지막 </span>			
			</c:if>
		</li>
	</c:forEach>
</ul>

EL로 Parameter 얻어오는 방법.

  1. ${param.name속성}
    • 단일 파라미터를 얻어오는 경우
    • 여러개의 피라미터가 있는 경우 0번째 값만 얻어온다
  2. ${paramValue.name속성값}
    ${paramValues.lang[0]} <br>
    ${paramValues.lang[1]} <br>
    ${paramValues.lang[2]} <br>

0개의 댓글