Back-end/JAVA,Spring

JSTL (Java Standard Tag Library) / EL (Expression Language)

cheersHena 2018. 8. 10. 23:02
반응형
JSTL 
Java Standard Tag Library 자바 표준 태그 라이브러리.

JSP에서 사용하기 위한 표준 태그 라이브러리를 지칭.
JSP Script Tag를 대체하기 위해 사용되고 EL 보다는 더 넓은 기능을 제공.
JSTL 종류에는 core, fmt(formmating), fn(function) 등이 있다.

 taglib 지시문을 이용하여 선언하고 접두어를 이용하여 사용한다.

<!-- 선언부 -->

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

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

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

 

<!-- 사용-->

<c:set var="hello" value="Hello" />

${hello}


변수의 출력 기능을 한다. JSP 표현식(<%= %>) 대체하는 기능이다.


core : 프로그램의 흐름을 제어하고 페이지 이동에 관련된 기능을 제공.

Java
JSTL
for                   <--------->
c:forEach
if                     <--------->
c:if
if-else if-else    <-------->
c:choose  c:otherwise
switch-case      <--------> 

e.g) 
<% for(int i=2; i<=9; i++){ %> 코드는 
<c:forEach var="i" begin="2" end="9" step="1" >와 대응

fmt : 숫자, 날짜, 시간을 지정 서식을 적용시켜 변환하여 출력 제공.

e.g) 값을 천단위 구분 기호를 추가하여 표시하고자 할 경우.
<fmt:formatNumber type="number" value="${balance}" />

만약 스크립트 릿에서 정의한 변수를 JSTL로 출력하기 위해선 아래 코드처럼 사용한다.
<% int money = 1230000; %>
<fmt:formatNumber type="number" value="<%= money %>" />
결과: 1,230,000 
 
fn : 문자열 관련 연산을 하기 위한 기능을 제공.



JSTL 의 사용하기 위해서 jar 파일 다운로드 필요.  

(maven을 사용 시 자동다운로드 가능..)


jar파일: 누군가가 만들어놓은 이미 컴파일된 클래스 파일들이 들어있음. 
필요한것 다운해서 사용.( jstl-api / jstl (1.2) ) 
site: mvnrepository.com > jar 1.2 다운 / jstl 두번째꺼 jar 다운 
라이브러리 추가:
자르파일을 web > webContent > web-inf>lib 에 복붙.!



EL (Expression Language)

 스크립트릿<%= %> 대신해서 편리하게 출력하는 기능 제공. 

e.g ) <%= name %>   ⇢   ${ name } 

스크립트릿을 html태그 사이에 위치할시 가독성 매우 떨어짐. 이러한 단점 보완하기 위한 표현어.






 

jstl functions (jstl fn) 정리

 

 jstl functions 를 사용하겠다고 선언

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

단독으로 사용할 수 없고 EL 표현식과 함께 사용해야 한다.

 ex.

${fn:contains(str, str)}

${fn:split(str, '|')}

 

 

 

fn:contains(string, sbustring)

string이 substring을 포함하면 return true 반환


fn:containsIgnoreCase(string, sbustring)

대소문자 관계없이 string이 substring을 포함하면 return true 반환

 

fn:startsWith(string, prefix)

string이 prefix로 시작하면 return True


fn:endsWith(string, suffix)

string이 suffix로 끝나면 return True


fn:escapeXml(string)

stting에 XML과 HTML에서 < >& ' " 문자들이 있으면, XML엔티티 코드로 바꿔준뒤 문자열 반환


fn:indexOf(string, sbustring)

string에서 substring이 처음으로 나타나는 인덱스 반환

 

fn:split(string, separator)

string내의 문자열 separetor에 따라 나누어서 배열로 구성해서 반환


fn:join(array, separator)

array요소들을 separator를 구분자로 하여 연결해서 반환


fn:length(item)

item이 배열이나 컬렉션이면 요소의 개수를 문자열이면 문자의 개수를 반환


fn:replace(string, before, after)

string내에 있는 before 문자열을 after 문자열로 모두 변경해서 반환


fn:substring(string, begin, end)

string에서 begin인덱스에서 시작해서 end인덱스에 끝나는 부분의 문자열 반환


fn:substringAfter(string, sbustring)

string에서 substring이 나타나는 이후의 문자열 반환


fn:substringBefore(string, sbustring)

string에서 substring이 나타나는 이전의 문자열 반환


fn:toLowerCase(string)

string을 모두 소문자로 변경 후 리턴


fn:toUpperCase(string)

string을 모두 대문자로 변경 후 리턴


fn:trim(string)

string앞뒤의 공백을 모두 제거한 후 반환



반응형