본문 바로가기

학원/복기

[MVC] Functions 태그 라이브러리

Functions 태그 라이브러리를 JSP 문서에 포함시킨다. 접두사로 [fn]을 사용한다.

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

 

[functions.jsp]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MVC</title>
</head>
<body>
	<h1>Functions - EL 함수</h1>
	<hr>
	<c:set var="phone" value="010-1234-5678"/>
	<p>전화번호 = ${phone }</p>
</body>
</html>

 

split 함수 

split 함수는 매개변수로 전달받은 문자열을 구분자로 분리하여 배열로 반환하는 함수이다.

<c:set var="array" value="${fn:split(phone,'-') }"/>
<c:forEach var="num" items="${array }">
	<div>${num }</div>
</c:forEach>

 

substring

substring 함수는 매개변수로 전달받은 문자열을 시작첨자(첨자 위치의 문자 포함)와 종료첨자(첨자 위치의 문자 미포함)로 분리하여 반환하는 함수이다.

<div>${fn:substring(phone, 0, 3) }</div>
<div>${fn:substring(phone, 4, 8) }</div>
<div>${fn:substring(phone, 9, 13) }</div>

 

replace 함수

replace 함수는 매개변수로 전달받은 문자열에서 검색 문자열을 찾아 치환 문자열로 변환하여 반환하는 함수이다.

<c:set var="content" value="안녕하세요.\n반갑습니다."/>
<div>${content }</div>
<div>${fn:replace(content, '\\n', '<br>') }</div>

 

 

EL 표현식으로 HTML 태그가 포함된 문자열을 스코프 객체 속성값으로 제공받아 출력할 경우, HTML 태그가 태그로 인식되어 출력 처리된다.

<c:set var="html" value="<font size='7' color='red'>안녕하세요</font>"/>
<div>${html }</div>

 

out 태그를 사용하여 HTML 태그가 포함된 문자열을 스코프 객체 속성값으로 제공받아 출력하면 HTML 태그를 문자로 인식하여 처리된다. (XSS 공격을 방어할 수 있다.)

<div><c:out value="${html }"/></div>

 

out태그 대신 EL에 escapeXml 함수를 사용해도 된다.

<div>${fn:escapeXml(html) }</div>

 

'학원 > 복기' 카테고리의 다른 글