1. split() 함수란?
split() 함수는 주어진 문자열을 특정 구분자를 기준으로 분리하고, 그 결과를 배열로 반환하는 함수입니다. 예를 들어, "apple,banana,orange"라는 문자열을 쉼표(,)로 분리하면, ["apple", "banana", "orange"]라는 배열을 얻게 됩니다.
2. 예제 시나리오
이번 예제에서는 "Spring,Security,Thymeleaf"라는 문자열을 쉼표로 분리한 후, 그 결과를 화면에 출력하는 방법을 구현해 보겠습니다.
3. 프로젝트 설정
Spring Boot 프로젝트에서 Thymeleaf를 사용할 수 있도록 spring-boot-starter-thymeleaf 의존성을 추가해야 합니다.
build.gradle (또는 pom.xml)
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
4. 컨트롤러 설정
먼저 문자열 데이터를 Thymeleaf 템플릿으로 전달하는 간단한 컨트롤러를 만듭니다.
StringController.java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class StringController {
@GetMapping("/split-example")
public String splitExample(Model model) {
String technologies = "Spring,Security,Thymeleaf";
model.addAttribute("technologies", technologies);
return "splitExample";
}
}
이 컨트롤러는 "/split-example" 경로로 접근했을 때 "Spring,Security,Thymeleaf"라는 문자열을 모델에 추가한 후, splitExample.html 템플릿을 반환합니다.
5. Thymeleaf 템플릿 작성
이제 split() 함수를 사용하여 문자열을 분리하고 화면에 출력하는 Thymeleaf 템플릿을 작성하겠습니다.
splitExample.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymeleaf Split Example</title>
</head>
<body>
<h1>Split Example</h1>
<p>Original String: <span th:text="${technologies}"></span></p>
<!-- 반복문 예시 -->
<ul>
<li th:each="tech : ${#strings.setSplit(technologies, ',')}">
<span th:text="${tech}"></span>
</li>
</ul>
<!-- 단일건 예시 -->
<ul>
<li>
<span th:text="${#strings.setSplit(technologies, ',')[0]}"></span>
</li>
<li>
<span th:text="${#strings.setSplit(technologies, ',')[1]}"></span>
</li>
</ul>
</body>
</html>
설명:
- <span th:text="${technologies}"></span>: 모델에서 전달받은 technologies 문자열을 그대로 출력합니다.
- <ul> 태그 내부의 th:each는 Thymeleaf의 반복문입니다. #strings.setSplit(technologies, ',')를 사용하여 쉼표로 문자열을 분리한 배열을 순회합니다.
- 각각의 분리된 문자열(tech)을 리스트 항목으로 출력합니다.
6. 실행 결과
프로젝트를 실행하고 브라우저에서 /split-example 경로로 이동하면 다음과 같은 결과를 볼 수 있습니다.
결과 화면:
Split Example
Original String: Spring,Security,Thymeleaf
- Spring
- Security
- Thymeleaf
위와 같이 "Spring,Security,Thymeleaf" 문자열이 각각 "Spring", "Security", "Thymeleaf"로 나뉘어 화면에 출력됩니다.
7. 확장: 문자열 분리 후 추가 처리
split() 함수로 분리된 문자열에 대해 추가적인 처리가 필요할 수도 있습니다. 예를 들어, 공백을 제거하거나 대소문자를 변환하는 등의 작업을 할 수 있습니다. 아래는 각 분리된 문자열에 공백을 제거하고 대문자로 변환하는 예제입니다.
splitExample.html 수정
<ul>
<li th:each="tech : ${#strings.setSplit(technologies, ',')}">
<span th:text="${#strings.toUpperCase(#strings.trim(tech))}"></span>
</li>
</ul>
설명:
- #strings.trim(tech): 각 분리된 문자열의 앞뒤 공백을 제거합니다.
- #strings.toUpperCase(tech): 문자열을 대문자로 변환합니다.
Thymeleaf의 split() 함수는 문자열을 구분자로 분리하고, 분리된 값을 반복하여 화면에 출력하는 데 유용합니다. 이를 통해 문자열을 더 세밀하게 다루거나 필요한 경우 추가 처리를 할 수 있습니다.
'Develop' 카테고리의 다른 글
[JavaScript] 비구조화 할당 (Destructuring Assignment) 배열 또는 객체의 값 추출 (12) | 2024.10.09 |
---|---|
[JavaScript] 배열에서 객체(오브젝트)의 위치를 찾는 방법 - indexOf 대신 findIndex 활용하기 (3) | 2024.10.08 |
PostgreSQL에서 한글 ORDER BY 정렬 문제 해결하기 COLLATE (4) | 2024.10.08 |
[jQuery] 자동완성 Autocomplete 기능 설명 및 사용 방법 (5) | 2024.10.08 |
[Thymeleaf 타임리프] Spring Security를 사용하여 로그인 정보를 Thymeleaf에서 출력하는 방법 (12) | 2024.10.04 |