Preloader image
DDD

유용한 TIP

타임리프 - 값변경 문법

작성자 관리자 (admin)
조회수 711
입력일 2023-03-17 12:14:48

https://hajoung56.tistory.com/72

타임리프의 문법 총정리된 사이트입니다.
Goooooooooooooooooooooooooood 입니다.

1. Strings

문법 설명
${#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

문법 설명
${#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

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

 

 

 

 

4. Arrays

문법 설명
${#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

문법 설명
${#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

문법 설명
${#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를 가지고 있는지 체크

 

 

 

 

7. Messages

자바에서 제공해주는 MessageQueue 객체를 입력받아 출력을 할 때 주로 사용합니다.

문법 설명
${#messages.msg('msgKey')}
${#messages.msg('msgKey', param1...)}
${#messages.msgWithParams('msgKey', new Object[] {param1...})}
${#messages.arrayMsg(msgKeyArray)}
${#messages.listMsg(msgKeyList)}
${#messages.setMsg(msgKeySet)}
기본 메시지 출력
예) home.welcome="Welcome to our grocery store!, {0}"
이라고 하면
<p th:utext="#{home.welcome(${session.user.name})}"></p> 일때, 아래와 같이 출력됩니다.

<p>Welcome to our grocery store! Dembele</p>
${#messages.msgOrNull('msgKey')}
${#messages.msgOrNull('msgKey', param1...)}
${#messages.msgOrNullWithParams('msgKey', new Object[] {param1, param2...})}
${#messages.arrayMsgOrNull(msgKeyArray)}
${#message.listMsgOrNull(msgKeyList)}
${#message.setMsgOrNull(msgKeySet)}
값이 없는 경우엔 null 출력

 

 

 

 

8. Dates

Date 타입을 입력받아 특정 포맷으로 리턴해줍니다.

문법 설명
${#dates.format(date)}
${#dates.format(date, 'yyyy-MM-dd HH:mm:ss')}
${#dates.arrayFormat(datesArray)}
${#dates.listFormat(datesList)}
$(#dates.setFormat(datesSet)}
표준 날짜 포맷을 리턴
특정 날짜 포맷으로 리턴
날짜 배열 포맷 리턴
날짜 List 포맷 리턴
날짜 Set 포맷 리턴
${#dates.day(date)}
${#dates.month(date)}
${#dates.monthName(date)}
${#dates.monthNameShort(date)}
${#date.year(date)}
${#date.dayOfWeek(date)}
${#date.dayOfWeekName(date)}
${#date.hour(date)}
${#date.minute(date)}
${#date.second(date)}
${#date.millisecond(date)}
'연-월-일 시:분:초.밀리초' 의 포맷일 때

'일' 반환
'월' 반환
'월의 영문명' 반환 ex) January, May 등
'월의 영문명 앞 3글자' 반환 ex) Jan, May 등
'연' 반환
'요일의 인덱스 반환' ex) 0:일요일 , 2:화요일... 반환은 0, 2
'요일명 반환' ex) Sunday, Tuesday...
'시' 반환
'분' 반환
'초' 반환
'밀리초' 반환
${#dates.create(year,month ,day)}
${#dates.create(year,month ,day,hour,minute)}
${#dates.create(year,month ,day,hour,minute,second)}
${#dates.create(year,month ,day,hour,minute,second,millisecond)}
Date 타입 반환의 기본 생성자(필수값 year, month, day)
${#dates.createNow()}
${#dates.createNowForTImeZone()}
${#dates.createToday()}
${#dates.createTodayForTimeZone()}
현재 시간 반환
현재 로컬 시간 반환
오늘 날짜 반환
현재 로컬의 오늘 날짜 반환

 

 

 

 

9. Calendars

자바에서 제공하는 Calendar 타입을 입력받아 사용하는 함수입니다.

문법 설명
${#calendars.format(cal)}
${#calendars.arrayFormat(calArray)}
${#calendars.listFormat(calList)}
${#calendars.setFormat(calSet)}
${#calendars.formatISO(cal)}
${#calendars.arrayFormatISO(calArray)}
${#calendars.listFormatISO(calList)}
${#calendars.setFormatISO(calSet)}
표준 캘린더 포맷 리턴
캘린더 배열 리턴
캘린더 List 리턴
캘린더 Set 리턴
ISO8601 포맷의 캘린더 리턴
ISO8601 포맷의 캘린더 배열 리턴
ISO8601 포맷의 캘린더 List 리턴
ISO8601 포맷의 캘린더 Set 리턴
${#calendars.format(cal, 'yyyy-MM-dd HH:mm')}
${#calendars.arrayFormat(calArray, 'yyyy-MM-dd HH:mm')}
${#calendars.listFormat(calList, 'yyyy-MM-dd HH:mm')}
${#calendars.setFormat(calSet, 'yyyy-MM-dd HH:mm')}
특정 포맷의 캘린더 리턴
${#calendars.day(date)}
${#calendars.month(date)}
${#calendars.monthName(date)}
${#calendars.monthNameShort(date)}
${#calendars.year(date)}
${#calendars.dayOfWeek(date)}
${#calendars.dayOfWeekName(date)}
${#calendars.hour(date)}
${#calendars.minute(date)}
${#calendars.second(date)}
${#calendars.millisecond(date)}
'연-월-일 시:분:초.밀리초' 의 포맷일 때

'일' 반환
'월' 반환
'월의 영문명' 반환 ex) January, May 등
'월의 영문명 앞 3글자' 반환 ex) Jan, May 등
'연' 반환
'요일의 인덱스 반환' ex) 0:일요일 , 2:화요일... 반환은 0, 2
'요일명 반환' ex) Sunday, Tuesday...
'시' 반환
'분' 반환
'초' 반환
'밀리초' 반환
${#calendars.create(year,month,day)}
${#calendars.create(year,month,day,hour, minute)}
${#calendars.create(year,month,day,hour, minute,second)}
${#calendars.create(year,month,day,hour, minute,second,millisecond)}
Calendar 타입 반환의 기본 생성자(필수값 year, month, day)
${#calendars.createForTimeZone(year,month ,day,tz)}
${#calendars.createForTimeZone(year,month ,day,hour,minute,tz)}
${#calendars.createForTimeZone(year,month ,day,hour,minute,second,tz)}
${#calendars.createForTimeZone(year,month ,day,hour,minute,second,millisecond,tz)}
위의 함수에서 TimeZone 파라미터를 추가
tz='Asia/Seoul' 을 넣으면 서울 기준
${#calendars.createNow()}
${#calendars.createNowForTImeZone()}
${#calendars.createToday()}
${#calendars.createTodayForTimeZone()}
현재 시간 반환
현재 로컬 시간 반환
오늘 날짜 반환
현재 로컬의 오늘 날짜 반환

 

^