FireDrago

[JSP] 문자열 처리 함수 사용하기 본문

프로그래밍/템플릿 엔진(thymeleaf, jsp)

[JSP] 문자열 처리 함수 사용하기

화이용 2023. 7. 17. 17:31

JSP도 자바와 마찬가지로 문자열을 다루는 여러가지 함수를 사용할 수 있다. 

문자열을 잘 다루는 것은 필수적인 능력이므로 뷰 단의 JSP든, 로직의 Servlet이든 사용할 수 있어야 한다. 

 

먼저 메서드 부터 살펴보자

 

함수 변환 설명
fn:contains(A, B) boolean 문자열 A에 B가 포함되는지 확인한다.
fn:endWith(A, B) boolean 문자열 A 의 끝이 B로 끝나는지 확인한다.  ex) 확장자 검사
fn:indexOf(A, B) int 문자열 A에서 B가 처음으로 위치하는 인덱스(index)를 반환한다.
fn:length(A) int 문자열 A의 전체 길이를 반환한다.
fn:replace(A, B, C) String 문자열 A에서 B까지 해당되는 문자를 찾아 C로 변경한다.
fn:toLowerCase(A) String 문자열 A를 전부 소문자로 변경한다.
fn:toUpperCase(A) String 문자열 A를 전부 대문자로 변경한다.
fn:substring(A, B, C) String 문자열 A에서 인덱스 번호 B에서 C까지 해당하는 문자열을 반환한다.
fn:split(A, B) String [ ] 문자열 A에서 B에 지정한 문자열로 나누어 배열로 반환한다.
fn:trin(A) String 문자열 A의 앞뒤 공백을 제거한다

 

사용방법 

 

먼저 taglib 태그를 사용하여 함수를 사용할 수 있도록 해줘야 한다.

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

${  } 을 사용하여 fn:(메서드(인자)) 형태로 호출한다.

<c:set var="title1" value="hello world!" />

${fn:length(title1)}

<%@ 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" %>
<%
	request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:set var="title1" value="hello world!" />
	<c:set var="title2" value="쇼핑몰 중심 JSP입니다!" />
	<c:set var="str1" value="중심" />
	<h2>여러 가지 문자열 함수 기능</h2>
	title1="hello world!"<br>
	title2="쇼핑몰 중심 JSP입니다!"<br>
	str1="중심"<br><br>
	
	fn:length(title1)=${fn:length(title1)}<br>
	fn:toUpperCase(title1)=${fn:toUpperCase(title1)}<br>
	fn:toLowerCase(title1)=${fn:toLowerCase(title1)}<br><br>
	
	fn:substring(title1,3,6)=${fn:substring(title1,3,6) }<br>
	fn:contains(title1,str1)=${fn:contains(title1,str1) }<br>
	fn:replace(title1," ","/")=${fn:replace(title1," ","/") }<br><br>
	
	fn:indexOf(title2,str1)=${fn:indexOf(title2,str1) }<br>
	fn:contains(title1,str1)=${fn:contains(title1,str1) }<br>
	fn:contains(title2,str1)=${fn:contains(title2,str1) }<br>
</body>
</html>