IT 관련,,/Java관련 언어들

[웹/JSP]jsp jstl에 대해서 알아보장~!!

IT깡패's 2020. 9. 13. 09:01
728x90
반응형
SMALL

안녕하세요~ 요번시간에는 jsp jstl의 간단한 예제들과 특징에 대해서 알아보겠습니다~ㅎㅎㅎ

 

1. JSTL 이란?

JSTL은 JSP 표준라이브러리(JSP Standard Tag Library)의 약어이다. 자주 사용될 수 있는 커스텀 태그들을 모아서

표준으로 모아놓은 태그 라이브러리다.

 

JSTL 의 종류

라이브러리명접두어주요 기능URI

코어 c 변수 지원, 제어문, 페이지 관련 처리 http://java.sun.com/jsp/jstl/core
함수 fn collection 처리, String 처리 http://java.sun.com/jsp/jstl/fuctions
포매팅 fmt 포맷 처리, 국제화 지원 http://java.sun.com/jsp/jstl/fmt
데이터베이스 sql DB관련 CRUD 처리 http://java.sun.com/jsp/jstl/sql
XML x XML관련 처리 http://java.sun.com/jsp/jstl/xml

사용법

위의 표에서 참고하여 JSP 상단에 <%@ taglib prefix="접두어" uri="URI 경로" %> 를 적어주면 된다. 접두어야

마음대로 쓸 수 있는 모양이지만 기왕이면 표준을 지키는게 좋습니다~!!

 

2. core 의 주요 기능

  • <c:set> : 변수 선언, 할당

    • scope 속성 : 범위 4가지(page, request, session, application), default 는 page
    • ex. int count = 10; = <c:set var="count" value="10">
  • <c:out> : 출력

    • ex. System.out.println("hello");을 간단하게 <c:out value="hello">
  • <c:remove> : 변수값 remove

    • scope 속성
  • <c:if> : if문, else문 없음

    • var 속성 : 조건식의 값을 저장할 변수
    • scope 속성 : boolean 변수가 사용될 범위를 뜻함
    • ex. <c:if test="조건식"> 참일때 실행할 문장 </c:if>
  • <c:choose>, <c:when>, <c:otherwise> : if-else 문 처럼 사용 가능

    • when 이 true 이면 해당 블럭 실행

    • 모든 when 이 false 이면 otherwise 블럭 실행

<c:choose> 
<c:when test="${empty boardList}"> 
등록된 글이 없습니다. 
</c:when>
<c:when test="조건식"> 
... 
</c:when>
<c:otherwise> 
... 
</c:otherwise> 
</c:choose>
  • <c:forEach> : for문이다

    var 사용할 변수명 Required
    items Collection 객체(List, ArrayList) Required
    begin 시작 index(default = 0)
    end 종료 index(default = items크기-1)
    step 증감 수
    varStatus 반복상태를 알 수 있는 변수

    <c:forEach var="item" items="${list}" begin=0 end=5 step=1 varStatus="status"> 
    번호 : ${status.count} 
    이름 : ${item.name} 
    나이 : ${item.age} 
    주소 : ${item.addr} 
    </c:forEach>
    

 

3. fuctions 의 주요 기능

  • boolean startsWith(java.lang.String, java.lang.String) : 문자열A가 문자열B로 시작하는 경우, true 반환
    • ex.
            <a class="<c:if test="${fn:startsWith(servletPath, '/board')}">active</c:if>" href="/board">


jsp jstl 코딩 간단한 예제!!

- jstl.jsp

<%@page import="mkPkg.Person"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Ex05_jstl.jsp<br>

<c:out value="Hello World"/><br>

<%
	String msg = "Hi~";
	out.println("msg:" + msg + "<br>");
	pageContext.setAttribute("msg1", "aaa");

%>

\${msg} : ${msg} <br> <!-- 공백 -->
\${msg1} : ${msg1} <br>

<c:set var="msg2" value="JSTL"/> msg2=JSTL<br>
\${msg2} : ${msg2}<br>
\${msg2} : <c:out value="${msg2}"/><br>

<!-- msg3=EL -->
<c:set var="msg3">
EL
</c:set>
\${msg3} : ${msg3}<br>
\${msg3} : <c:out value="${msg3}"/><br>

<hr>

객체만들기1 <br>
<%
	//Person per = new Person("윤아",30,"여");
	
	Person per = new Person();
	per.setName("윤아");
	per.setAge(30);
	per.setGender("여");
	
	pageContext.setAttribute("abcd", per); // 이름,갑 abcd=per
	
%>

name1 : <%= per.getName()%> <br>
name2 : <% out.println(per.getName());%> <br>
name3 : ${ abcd.name } <br>
name4 : <c:out value="${ abcd.name }"/><br>
name5 : <c:out value="<%= per.getName()%>"/><br>
name6 : ${ per.name } <br>

<br>
객체만들기2 <br>

useBean 액션태그
per2
태연,30,"여"
<jsp:useBean id="per2" class="mkPkg.Person"/>
<jsp:setProperty property="name" name="per2" value="태연"/>
<jsp:setProperty property="age" name="per2" value="30"/>
<jsp:setProperty property="gender" name="per2" value="여"/><br>
 
age1 : <jsp:getProperty property="age" name="per2"/> <br>
age2 : <%=per2.getAge() %> <br>
age3 : ${per2.age } <br>

<br>
객체만들기3 <br>

<!-- Person per3 = new Person(); -->
<c:set var="per3" value="<%= new Person() %>"/>

<!-- per3.setName("써니"); -->
<c:set target="${per3 }" property="name" value="써니"/>
<c:set target="${per3 }" property="age" value="50"/>
<c:set target="${per3 }" property="gender" >
남
</c:set>

gender1: ${per3.gender } <br>
gender2: <%-- <%=per3.getGender() %>  --%><br>
gender3: <%-- <jsp:getProperty property="gender" name="per3" /> --%> <br>
gender4: <c:out value="${per3.gender }" />


 

이렇게 사용하면 되고요~ㅎㅎㅎ

이제 마지막으로 웹에서 가져온 결과도 띄어볼께요잉~~!!!!!!! 

 

- 참고링크


jstl(종류, 사용법 등등) - https://sjh836.tistory.com/136

728x90
반응형
LIST