티스토리 뷰

Client

Thymeleaf Utility Objects (1)

니용 2020. 6. 10. 17:42
반응형

 

Author: 니용

 

이전 글에서 Thymeleaf의 기본적인 문법을 확인하였다면, 이번 글에서는 Thymeleaf를 더 심도 있게 활용할 수 있는 방법을 알려드리려고 합니다. 

Thymeleaf는 Utility Object라고 하는 함수를 기본적으로 내장하고 있습니다. 

흔히 우리가 사용하는 자바 언어의 String 내에 기본 내장되어 있는 함수와 이를 응용해서 쓸 수 있는 java.lang.common3.StringUtils와 같은 클래스들이 이러한 예시라고 생각하면 좋습니다.

 

 

대표적으로 사용하는 유틸리티들을 아래에 나열하였습니다. 사용 방법은 ${#...}로 사용합니다.

 

1. Strings

Grammar (Method) Description
${#strings.toString(obj)} Object obj를 문자열로 변환 (Null-safe)
${#strings.isEmpty(str)}
${#strings.arrayIsEmpty(strArray)}
${#strings.listIsEmpty(strList)}
${#strings.setIsEmpty(strSet)}
문자열이 Empty String인지 체크
문자열 배열이 공백인지 체크
문자열 List가 공백인지 체크
문자열 Set이 공백인지 체크
${#strings.defaultString(text,default)} 
${#strings.arrayDefaultString(textArr,default)} 
${#strings.listDefaultString(textList,default)} 
${#strings.setDefaultString(textSet,default)}
문자열이 공백이거나 null일때 기본값 설정
${#strings.contains(name,'ez')} 
${#strings.containsIgnoreCase(name,'ez')} 
문자열 내 포함여부 체크
문자열 내 포함여부(대소문자 무시) 체크
${#strings.startsWith(name,'Don')}
${#strings.endsWith(name,endingFragment)} 
시작문자열/끝문자열 일치 여부 확인 
return true or false
${#strings.indexOf(name,frag)}
${#strings.substring(name,3,5)} 
${#strings.substringAfter(name,prefix)} 
${#strings.substringBefore(name,suffix)} 
${#strings.replace(name,'las','ler')}
문자열에서 처음으로 나오는 인덱스 찾기
문자열을 특정 인덱스만큼 자르기
문자열로 찾은 후 인덱스만큼 자르기
문자열로 찾은 후 그 전 인덱스만큼 자르기
문자열 대체
${#strings.prepend(str,prefix)} 
$(#strings.append(str,suffix)}
문자열 앞/뒤에 붙이기
${#strings.toUpperCase(name)}
${#strings.toLowerCase(name)}
대문자, 소문자화
${#strings.arrayJoin(namesArray,',')} 
${#strings.listJoin(namesList,',')} 
${#strings.setJoin(namesSet,',')} 
${#strings.arraySplit(namesStr,',')}        // returns String[] 
${#strings.listSplit(namesStr,',')}       // returns List<String> 
${#strings.setSplit(namesStr,',')}       // returns Set<String>
특정 문자열로 나누기, 문자열 사이에 특정 문자열 넣기
$(#strings.trim(str)}
공백 문자열로 나누기
$(#strings.length(str)} 문자열 길이
${#strings.capitalize(str)} 
${#strings.unCapitalize(str)}
첫번째 문자 대문자화
${#strings.capitalizeWords(str)}
${#strings.capitalizeWords(str,delimiters)}
대문자화
${#strings.escapeXml(str)}  
${#strings.escapeJava(str)}                  
${#strings.escapeJavaScript(str)}           
${#strings.unescapeJava(str)}     
${#strings.unescapeJavaScript(str)}
이스케이프 (' -> \')
언이스케이프 (\' -> ')
${#strings.randomAlphanumeric(count)} 랜덤 문자 생성

 

2. Numbers

Grammar (Method) Description
${#numbers.formatInteger(num,3)}
${#numbers.arrayFormatInteger(numArray,3)}
${#numbers.listFormatInteger(numList,3)}
${#numbers.setFormatInteger(numSet,3)}
${#numbers.formatInteger(num,3, 'POINT')}
${#numbers.arrayFormatInteger(numArray,3,'COMMA')}

${#numbers.listFormatInteger(numList,3,'WHITESPACE')}
${#numbers.setFormatInteger(numSet,3,'NONE')}
정수형(Integer) 타입으로 변환 // 0003
정수 배열타입으로 변환 // [0002, 0004]
정수 List타입으로 변환
정수 Set타입으로 변환
정수형 타입에 중간에 마침표(.)을 넣음 // 123.456.789
정수형 배열 타입 중간에 콤마(,)를 넣음 // [(123,456,789),(234,567,123)...]
정수형 List 타입 중간에 공백문자( )를 넣음
정수형 Set 타입에 문자를 넣지 않음
${#numbers.formatDecimal(num,3,2)}
${#numbers.arrayFormatDecimal(numArray,3,2)}
${#numbers.listFormatDecimal(numList,3,2)}
${#numbers.setFormatDecimal(numSet,3,2)}
${#numbers.formatDecimal(num,3,2,'POINT')}
${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')}

${#numbers.listFormatDecimal(numList,3,2,'WHITESPACE')}
${#numbers.setFormatDecimal(numSet,3,2,'NONE')}
${#numbers.formatDecimal(num,3,'COMMA',2,'POINT')}


실수형 타입에 소수점 2자리까지 표현
실수형 배열 타입으로 변환(소수점 2자리)
실수형 List 타입으로 변환(소수점 2자리)
실수형 Set 타입으로 변환(소수점 2자리)
실수형 타입에 중간에 마침표(.)을 넣음 // 123.456.789.00
실수형 배열 타입 중간에 콤마(,)를 넣음 // [(123,456,789.00),(234,567,123.00)...]
실수형 List 타입 중간에 공백문자( )를 넣음
실수형 Set 타입에 문자를 넣지 않음
실수형 타입에 소수점 앞자리는 3칸마다 콤마(,)를 넣고 뒷자리에는 2칸마다 마침표(.)를 넣음
ex) 123,456,789.01.02.34
${#numbers.formatCurrency(num)} 현재 통화 단위로 변경  // 달러: $200
${#numbers.formatPercent(num,3,2)} 퍼센트 단위로 변경  //  234.56%
${#numbers.sequence(from,to)}
${#numbers.sequence(from,to,step)}
from에서 to까지 정해진 step 만큼 증가하는 연속된 정수를 나타냄

 

3. Objects

Grammar (Method) Description
${#objects.nullSafe(obj,default)}
${#objects.arrayNullSafe(objArray,default)}
${#objects.listNullSafe(objList,default)}
${#objects.setNullSafe(objSet,default)}
null이 들어오면 기본값 세팅
배열이 null인 경우 기본값 세팅
List가 null인 경우 기본값 세팅
Set이 null인 경우 기본값 세팅

 

4. Arrays

Grammar (Method) Description
${#arrays.toArray(object)} Array 형태로 타입 변환
${#arrays.toStringArray(object)}
${#arrays.toIntegerArray(object)}
${#arrays.toLongArray(object)}
${#arrays.toDoubleArray(object)}
${#arrays.toFloatArray(object)}
${#arrays.toBooleanArray(object)}
문자열 Array로 변환
정수(int)값
정수(long)값
소수점(double)값
실수(float)값
참거짓(boolean)값
$(#arrays.length(array)} 배열의 길이 구하기
${#arrays.isEmpty(array)} 빈 배열 여부 체크
${#arrays.contains(array, element)}
${#arrays.containsAll(array, elements)}
배열에 해당 element가 있는지 체크

 

5. Lists

Grammar (Method) Description
${#lists.toList(object)} List 형태로 타입 변환
${#lists.size(list)} List 사이즈 반환
${#lists.isEmpty(list)} 빈 List 체크
${#lists.contains(list, element)}
${#lists.containsAll(list, elements)}
List 내 해당 element 체크
${#lists.sort(list)}
${#lists.sort(list, comparator)}
List를 정렬(comparator 사용 가능)

 

6. Maps

Grammar (Method) Description
${#maps.size(map)} Map의 사이즈 반환
${#maps.isEmpty(map)} 빈 Map 체크
${#maps.containsKey(map, key)}
${#maps.containsAllKeys(map, key)}
${#maps.containsValue(map, value)}
${#maps.containsAllValues(map, value)}
Map 내 일부 요소가 해당 Key를 가지고 있는지 체크
Map 내 전체 요소가 해당 Key를 가지고 있는지 체크
Map 내 일부 요소가 해당 Value를 가지고 있는지 체크
Map 내 전체 요소가 해당 Value를 가지고 있는지 체크
반응형

'Client' 카테고리의 다른 글

Progress Bar 붙이기  (0) 2020.07.14
반응형 웹을 만들어보자  (0) 2020.06.13
Thymeleaf Utility Objects (2)  (0) 2020.06.11
Thymeleaf 기본 문법  (0) 2020.06.09
[React.js] React를 제대로 활용하기 (Hooks)  (0) 2020.04.06
[React.js] React를 제대로 활용하기 (3)  (0) 2020.03.22
댓글
공지사항