jstl

HG·2022년 10월 28일
0

JSTL - JSP 개발을 단순화하기 위한 태그 library

장점

  1. 빠른 개발 -> JSP를 단순화 하는 많은 태그 제공

  2. 코드 재사용성 -> 다양한 페이지에서 JSTL 태그 사용 가능

  3. 스크립틀릿 태그를 사용할 필요가 없음

JSTL tag

c - core tags 변수 지원, url 관리, 흐름 등을 제공

fn - function tags 문자열 조작 및 문자열 길이를 지원

fmt - formatting tags 메세지 형식화 번호 및 날짜 형식화 등을 지원

x - xml tags 흐름 제어, 변화 등을 제공

sql - sql 지원을 제공

#Core Tags

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
코드를 추가하고 사용

<c:out> tag

<c:out value ="${ ' Welcome to javaTpoint'}" />

이러면 Welcome to javaTpoint가 찍힘

<c:import> Tag

'include' 와 유사, 서버 내부 또는 서버 외부의 모든 자원 컨텐츠를 포함하는 추가 기능이 있음

include action의 모든 기능을 제공, 가져오기 태그를 사용하여 다른 FTP 서버 및 웹 사이트의 컨텐츠에 엑세스 할 수 있었는데 보안 정책으로 불가능해짐

전자정부프레임워크를 임폴트 할때 써먹는것같다.

<c:set> tag

'scope'에서 평가된 표현식의 결과를 설정하는데 사용

표현식을 평가하고 결과를 사용하여 java.util.Map or JavaBean 값을 설정하므로 유용

<c:set var = "income" scope = "session" value = "${4000*4}"/>
<c:out value ="{income}"/>

하면 16000을 찍어서 보여줌

<c:remove> tag

첫 번째 범위 또는 지정된 범위에서 변수를 제거

특별히 도움되진 않다고한다.

<c:catch> tag

본문에서 발생하는 Throwable 예외를 포착하고 선택적으로 노출시키는데 사용

일반적으로 오류 처리에 사용되며, 프로그램에서 발생하는 문제를 보다 쉽게 처리

<c:catch var ="catchtheException">
<% int x = 2/0;%>
</c:catch>

<c:if test = "${catchtheException != null}">

The type of exception is : ${catchtheException}
There is an exception: ${catchtheException.message}

위 경우에서 catchException을 정의하고, 아래경우에서 써먹을 수 잇다.

<c:if> tag

조건을 테스트하는 데 사용

평가 된 표현식이 true 인 경우 본문 내용 표시

<c:set var="income" scope="session" value="40004"/><c:iftest="{4000*4}"/> <c:if test="{income > 8000}">

My income is:

기존의 경우와 같다

<c:choose>, <c:when>, <c:otherwide> tag

choose 태그는 상호 배타적인 조건부 작업에 대한 컨텍스트를 설정하는 조건부 태그

여러 대안 중에서 선택한느 switch 문 처럼 작동

when은 조건이 'true' 인 경우 본문을 포함하는 choose의 하위 태그

otherwide는 또한 choose의 하위태그이며, 이전 조건들이 모두 'false'인 경우에만 실행

c:when 및 c:other는 if-else문 처럼 작동합니다. 그러나 c:choose 태그 안에 배치해야한다.

<c:choose>
<c:when test="income<=1000">Incomeisnotgood.</c:when><c:whentest="{income <= 1000}"> Income is not good. </c:when> <c:when test="{income > 10000}">
Income is very good.
</c:when>
<c:otherwise>
Income is undetermined...
</c:otherwise>
</c:choose>

<c:forEach> tag

중첩 된 내용을 고정 된 횟수만큼 또는 컬렉션에 반복하는 데 사용되는 반복 태그

<c:forEach var="j" begin = "1" end = "2">
Item <c:out value="${j}" />


</c:forEach>

Item 1

Item 2

<c:forTokens> tag

제공된 구분 기호로 구분 된 토큰을 반복

문자열을 토큰으로 나누고 각 토큰을 반복하여 출력을 생성하는 데 사용

c:forEach 태그와 유사한 속성을 갖음

<c:forTokens items="Rahul-Nakul-Rajesh" delims="-" var="name">
<c:out value="${name}"/>


</c:forTokens>

Rahul

Nakul

Rajesh

<c:parm> tag

포함하는 'import' 태그의 URL에 매개 변수를 추가

URL 내에 적절한 URL 요청 매개 변수 지정 가능

필요한 URL 인코딩을 자동으로 수행

value 속성은 매개 변수 값을 나타내고, name 속성은 매개 변수 이름을 나타냄

<c:url value="/index1.jsp" var="completeURL" />
<c:param name = "trackingId" value = "786" />
<c:param name = "user" value = "Nakul" />
</c:url>
${completeURL}

/pgms/index1.jsp?trackingId=786&user=Nakul

<c:redirect> tag

브라우저를 새 URL로 리디랙션

문맥 기준 URL과 c:param 태그를 지원

자동 URL 재 작성을 사용하여, 브라우저를 대체 URL로 리디랙션 하는 데 사용

<c:if test = "url<1"><c:redirecturl="https://naver.com"/></c:if><c:iftest="{url<1}"> <c:redirect url = "https://naver.com" /> </c:if> <c:if test = "{url>1}">
<c:redirect url="http://daum.net" />
</c:if>

<c:url> tag

선택적 쿼리 매개 벼수를 사용하여 URL을 만듦

URL 인코딩 또는 URL 형식에 사용

response.encodeURL () 메소드에 대한 호출을 작성하는 대체 방법으로 사용

장점은 적절한 URL 인코딩이며 자식이 지정한 매개 변수를 포함한다는 것

<c:url value = "/jsp1.jsp" />

#Function tag

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 후 사용

`fn:contains()

지정된 하위 문자열이 문자열에서 발견되면 true를 반환하고, 그렇지 않으면 false를 반환

<c:set var="String" value = "Hello World" />

<c:if test = "${fn:contains(string, 'hello')}">

`fn:containsInoreCase()

입력 문자열에 대소 문자를 구분하지 않고 지정된 하위 문자열이 포함되어 있는지 테스트하는데 사용

지정된 부분 문자열을 검색하는 동안 대소문자를 무시

<c:if test = "${fn:containsIgnoreCase(String, 'hello')}">

<p>Found hello 2</p>

</c:if>
<c:if test = "${fn:containsIgnoreCase(String, 'hello')}">

<p>Found Hello 2</p>

</c:if>

`endsWith()

입력 문자열이 지정된 접미어로 끝나는 지 테스트하는 데 사용

문자열이 지정된 접미어로 끝나는 경우 true 반환, 그렇지 않으면 false를 반환

<c:set var = "String" value = "Welcome to JSP programming" />

<c:if test = "${fn:endsWith(String, 'promgramming')}" />

<p> String ends with programming</p>

</c:if>

<c:if test="${fn:endsWith(String, 'JSP')}">

String ends with JSP

`escapeXml ()

XML 마크 업 언어에서 문자를 이스케이프 처리하는 데 사용

<c:set var = "string1" value = "It is first String." />
<c:set var = "string2" value = "It is

second String.
"/>

With escapeXml() Function:

string-1 : ${fn:escapeXml(string1)}

string-2 : ${fn:escapeXml(string2)}

Without escapeXml() Function:

string-1 : ${string1}

string-2 : ${string2}

`fn:indexOf()

하위 문자열에 지정된 문자열의 인덱스를 결정하는 데 사용

<c:set var = "string1" value = "It is first String." />
<c:set var = "string2" value = "It is

second String.
"/>

Index-1 : ${fn:indexOf(string1, "first")}

Index-2 : ${fn:indexOf(string2, "second")}

Index-1 : 6

Index-2 : 35

`fn:trim()

문자열의 양쪽 끝에서 공백을 무시하는 데 사용

<c:set var="str1" value="Welcome to JSP programming "/>

String-1 Length is : ${fn:length(str1)}

String-2 Length is : ${fn:length(str2)}

Final value of string is : ${str2}

String-1 Length is : 42

String-2 Length is : 33

Final value of string is : Welcome to JSP programming

`startsWith()

입력 문자열이 지정된 하위 문자열로 시작되는지 테스트

주어진 접두사로 문자열이 시작할 때 true 아니면 false 반환

<c:set var="msg" value="The Example of JSTL fn:startsWith() Function"/>
The string starts with "The": ${fn:startsWith(msg, 'The')}

The string starts with "Example": ${fn:startsWith(msg, 'Example')}

`fn:split()

구분 기호 문자열을 기반으로 문자열을 배열로 분할하는 데 사용

<c:set var="str1" value="Welcome-to-JSP-Programming."/>
<c:set var="str2" value="fn:split(str1,)"/><c:setvar="str3"value="{fn:split(str1, '-')}" /> <c:set var="str3" value="{fn:join(str2, ' ')}" />

String-3 : ${str3}

String-5 : ${str5}

`fn:toLowerCase()

입력 문자열에서 대문자를 소문자로 바꾸는 데 사용

<c:set var="string" value="Welcome to JSP Programming"/>
fn:toLowerCase("HELLO,"){fn:toLowerCase("HELLO,")} {fn:toLowerCase(string)}

`fn:toUppserCase()

<c:set var="site" value="javatpoint.com"/>
<c:set var="author" value="Sonoo Jaiswal"/>
Hi, This is ${fn:toUpperCase(site)} developed by ${fn:toUpperCase(author)}.

profile
Making Body, Making Food, Making Co?de

0개의 댓글