2016. 9. 4.

[JavaScript] JSP JSTL

JSTL

JSP Standard Tag Library. 즉, 자바서버페이지 표준 태그 라이브러리이다.

JSP는 HTML에 자바코드가 섞이지 않도록 유용한 표현을 지원하고 있다.

바로 ①EL(Expression Language), ②JSTL이다.




① EL은 ${}로 표현한다.
활용 전 :
String a = request.getParameter("id")

활용 후 :
id = ${param.id} <br>
>>> 활용 전 id는 null값이 나오지만, 사용 후 id값은 null이 아닌 빈 문자열이 된다.


* 배열생성 또한 가능하다.
${c = [1,2,3,4,5]} <!-- 배열 c를 생성 후 전체를 출력해줌. -->
${c[0]}  <!-- c[0]을 출력함 -->

이때, 선언만 하려면 새미콜론(;)을 붙이면 된다.
${c = [1,2,3,4,5]; ''}

>>> 새미콜론(;)은 만든 배열의 이후만 마지막에 출력하라는 연산자. 즉 따옴표 내용만 출력.


[EL의 내장객체들]

 pageContext pageContext 객체 참조
 pageScope page 영역 참조
 requestScope request 영역 참조
 sessionScope session 영역 참조
 applicationScope application 영역 참조
 param 요청 파라미터의  값을 String으로, request.getParameter()와 동일
 paramValue 요청 파라미터의  값을 String[]으로, request.getParameterValues()의 결과와 동일
 header 요청 header 정보, request.getHeader()의 결과와 동일
 headerValues 요청 header 정보를 배열, request.getHeaders()
 cookie 쿠키 참조, request.getCookies()결과와 동일
 initParam 컨텍스트의 초기화 파라미터, application.getInitParameter(이름)의 결과와 동일하다.
※ scope는 생략이 가능하다. ${sessionScope.id}를 ${id}라고 표현할 수 있다.
생략하면 작은 영역순으로 찾게 된다. request, session, application 순으로.




② JSTL은 prefix를 지정해 HTML에 자바구문을 작성한다.
(여기서는 core만 정리)

[JSTL의 내장태그들]
LibraryPrefix
corec
formatfmt
databasesql
XMLx
functionfn
[출처] http://blog.naver.com/lagi1101/90121544248

* preifx는 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 로 지정한다.
보통 줄임말을 관행상 쓰므로, 흔히 core는 c라고 지정해준다.





1. <c:set> ~ </c:set>  -변수선언
[기본표기]
<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" >



ex 1) c:set으로 data변수를 선언해 값을 넣고, ${data}로 출력
<c:set var "data" value="루미루미" />
data = ${data} <br>

ex 2) 자바코드로 sql구문을 c:set에 sql변수선언 후 값넣고 ${sql}로 출력
<%@ page import = "java.sql.*", "javax.sql.*" %>
<% String sql = "SELECT * FROM member"; %>
<c:set var = "sql" value = "<%=sql%>" />
sql = ${sql}


2. <c:forEach> ~ </c:forEach>  -자바 for문
[기본표기]
<c:forEach itmes="객체명" begin="시작인덱스" end="끝인덱스" step="증감식" var="변수명" varStatus="상태변수" >



ex) 상태(status)를 지정해 1부터 5까지의 index에 Hello를 넣고 출력
<c:forEach begin="1" end="5" varStatus="status">
     [${status.index}]  Hello<br>
</c:forEach>

※ 이때 varStatus는 보통 status로 지정하며, for문의 상태를 체크하는 변수이다.
  • {status.current}   현재의 for문에 해당하는 번호
  • {status.index} begin에 지정한 값을 초기값으로 반복문 시행
  • {status.count} 무조건 1이 초기값
  • {status.first}  현재 루프가 처음인지 확인
  • {status.last}  현재 루프가 마지막인지 확인
  • {status.begin} for문의 시작 값
  • {status.end}   for문의 끝 값
  • {status.step}  for문의 증가값


3. <c:choos> ~ </c:choose>  -자바 switch문
[기본표기]
<c:choose>
    <c:when test="조건"></c:when>
    <c:otherwise> </c:otherwise>
</c:choose>



ex)
<c:choose>
      <c:when test="${b}">
          <font color = red>실행문장 </font>
      </c:when>
      <c:otherwise>
          <h1>위조건이외의 경우 실행문장 </h1>
     </c:otherwise>
</c:choose>




4. <c:if> ~ </c:if>  -자바 if문
[기본표기]
<c:if test="조건" var="변수명" scope="범위" >

이외에도 <c:remove>, <c:catch> 등이 있다.

댓글 없음:

댓글 쓰기