Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 입력 문자열에 특정 하위 문자열이 포함되어 있는지 확인하는 방법 – fn:contains() 함수 완벽 가이드

JSTL(JavaServer Pages Standard Tag Library)에서 제공하는 fn:contains() 함수는 입력 문자열 안에 지정된 하위 문자열이 포함되어 있는지 여부를 판별합니다. 이 함수는 조건이 충족되면 true, 그렇지 않으면 false를 반환하며, 주로 <c:if> 태그와 함께 사용해 조건 분기 로직을 간결하게 작성할 수 있습니다.

구문

fn:contains() 함수의 기본 구문은 다음과 같습니다.

boolean contains(java.lang.String, java.lang.String)

첫 번째 인자는 검색 대상이 되는 원본 문자열이고, 두 번째 인자는 찾고자 하는 하위 문자열입니다.

예제

다음 예제를 통해 fn:contains() 함수의 실제 동작 방식을 살펴보겠습니다.

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
<html>
   <head>
      <title>JSTL 함수 사용하기</title>
   </head>
   <body>
      <c:set var = "theString" value = "I am a test String"/>
      <c:if test = "${fn:contains(theString, 'test')}">
         <p>'test' 문자열을 찾았습니다<p>
      </c:if>
      <c:if test = "${fn:contains(theString, 'TEST')}">
         <p>'TEST' 문자열을 찾았습니다<p>
      </c:if>
   </body>
</html>

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

'test' 문자열을 찾았습니다

주요 포인트: 대소문자 구분

fn:contains() 함수는 대소문자를 엄격하게 구분한다는 점에 유의해야 합니다. 위 예제에서 변수 theString에는 "I am a test String"이라는 값이 저장되어 있습니다. 소문자 'test'는 실제로 문자열에 존재하므로 첫 번째 조건식이 참이 되어 메시지가 출력됩니다. 반면 대문자 'TEST'는 문자열에 존재하지 않기 때문에 두 번째 <c:if> 블록은 실행되지 않습니다.

만약 대소문자 구분 없이 문자열을 비교하고 싶다면, fn:toLowerCase() 또는 fn:toUpperCase() 함수를 사용해 두 문자열을 동일한 형태로 변환한 후 비교하는 방법을 활용할 수 있습니다. 예를 들어 ${fn:contains(fn:toLowerCase(theString), 'test')}처럼 작성하면 어떤 대소문자 조합이든 일관된 결과를 얻을 수 있습니다.