Thymeleaf 내장 객체 표현식 전체

여기에 정리된 것은 Thymeleaf3.0 릴리즈의 내장 표현식은 Thymeleaf3에서 참조합니다.0 공식 문서, 제18, 19조

1. 표현식 기본 객체


Thymeleaf3.0 공식 문서 제18조

1.1 기본 객체


#ctx: 컨텍스트 객체
    ${#ctx.locale}
    ${#ctx.variableNames}
    ${#ctx.request}
    ${#ctx.response}
    ${#ctx.session}
    ${#ctx.servletContext}

#locale: java에 직접 액세스합니다.util.현재 요청과 연결된 Locale 컨텐츠
    ${#locale}

1.2 세션


param: 검색 요청 매개 변수 ${param.foo}은string[]이foorequest 매개 변수 값을 가지고 있기 때문에 ${param.foo[0]}는 보통 첫 번째 값을 가져오는 데 사용됩니다
    ${param.foo}              //  'foo' []
    ${param.size()}
    ${param.isEmpty()}
    ${param.containsKey('foo')}

세션 속성 검색에 사용
    ${session.foo}                 //  “foo”
    ${session.size()}
    ${session.isEmpty()}
    ${session.containsKey('foo')}

응용 프로그램:응용 프로그램/servlet 상하문 속성 검색에 사용
    ${application.foo}              //  ServletContext “foo”
    ${application.size()}
    ${application.isEmpty()}
    ${application.containsKey('foo')}
 , ( request ), :
    ${myRequestAttribute}

1.3 웹 컨텍스트 객체


#request: javax에 직접 액세스합니다.servlet.http.현재 요청과 연관된 HttpServletRequest 객체
    ${#request.getAttribute('foo')}
    ${#request.getParameter('foo')}
    ${#request.getContextPath()}
    ${#request.getRequestName()}

#session: javax에 직접 액세스합니다.servlet.http.현재 요청과 연결된 HttpSession 객체
    ${#session.getAttribute('foo')}
    ${#session.id}
    ${#session.lastAccessedTime}

#servletContext:javax에 직접 액세스합니다.servlet.서브렛Context 현재 요청과 연관된 객체
    ${#servletContext.getAttribute('foo')}
    ${#servletContext.contextPath}

2. 표현식 유틸리티 객체


Thymeleaf3.0 공식 문서 제19조

2.1 실행 정보


#execInfo: 표현식 객체, Thymeleaf 표준 표현식에서 처리 중인 템플릿에 대한 유용한 정보 제공
    ${#execInfo.templateName}
    ${#execInfo.templateMode}

    ${#execInfo.processedTemplateName}
    ${#execInfo.processedTemplateMode}

    ${#execInfo.templateNames}
    ${#execInfo.templateModes}

    ${#execInfo.templateStack}

2.2 메시지 내용


#messages: 변수 표현식 내의 외부화 메시지를 가져오는 데 사용되는 유틸리티 방법문법은 메시지를 얻는 방식이 같다
    ${#messages.msg('msgKey')}
    ${#messages.msg('msgKey', param1)}
    ${#messages.msg('msgKey', param1, param2)}
    ${#messages.msg('msgKey', param1, param2, param3)}
    ${#messages.msgWithParams('msgKey', new Object[] {param1, param2, param3, param4})}
    ${#messages.arrayMsg(messageKeyArray)}
    ${#messages.listMsg(messageKeyList)}
    ${#messages.setMsg(messageKeySet)}

    ${#messages.msgOrNull('msgKey')}
    ${#messages.msgOrNull('msgKey', param1)}
    ${#messages.msgOrNull('msgKey', param1, param2)}
    ${#messages.msgOrNull('msgKey', param1, param2, param3)}
    ${#messages.msgOrNullWithParams('msgKey', new Object[] {param1, param2, param3, param4})}
    ${#messages.arrayMsgOrNull(messageKeyArray)}
    ${#messages.listMsgOrNull(messageKeyList)}
    ${#messages.setMsgOrNull(messageKeySet)}

2.3 URI / URL


#uris: Thymeleaf 표준 표현식에서 URI/URL 작업을 수행하는 유틸리티 객체(특히 URI/URL)
    // Escape/Unescape as a URI/URL path
    ${#uris.escapePath(uri)}
    ${#uris.escapePath(uri, encoding)}
    ${#uris.unescapePath(uri)}
    ${#uris.unescapePath(uri, encoding)}

    // Escape/Unescape as a URI/URL path segment (between '/' symbols)
    ${#uris.escapePathSegment(uri)}
    ${#uris.escapePathSegment(uri, encoding)}
    ${#uris.unescapePathSegment(uri)}
    ${#uris.unescapePathSegment(uri, encoding)}

    // Escape/Unescape as a Fragment Identifier (#frag)
    ${#uris.escapeFragmentId(uri)}
    ${#uris.escapeFragmentId(uri, encoding)}
    ${#uris.unescapeFragmentId(uri)}
    ${#uris.unescapeFragmentId(uri, encoding)}

    // Escape/Unescape as a Query Parameter (?var=value)
    ${#uris.escapeQueryParam(uri)}
    ${#uris.escapeQueryParam(uri, encoding)}
    ${#uris.unescapeQueryParam(uri)}
    ${#uris.unescapeQueryParam(uri, encoding)}

2.4 변환


#conversions: 유틸리티 객체로 템플릿의 어느 곳에서든 변환 서비스를 수행할 수 있습니다.
    ${#conversions.convert(object, 'java.util.TimeZone')}
    ${#conversions.convert(object, targetClass)}

2.5일


#dates:java.util.Date 객체 유틸리티 방법
    ${#dates.format(date)}
    ${#dates.arrayFormat(datesArray)}
    ${#dates.listFormat(datesList)}
    ${#dates.setFormat(datesSet)}

    ${#dates.formatISO(date)}
    ${#dates.arrayFormatISO(datesArray)}
    ${#dates.listFormatISO(datesList)}
    ${#dates.setFormatISO(datesSet)}

    ${#dates.format(date, 'dd/MMM/yyyy HH:mm')}
    ${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}
    ${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}
    ${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}

    ${#dates.day(date)}                    // also arrayDay(...), listDay(...), etc.
    ${#dates.month(date)}                  // also arrayMonth(...), listMonth(...), etc.
    ${#dates.monthName(date)}              // also arrayMonthName(...), listMonthName(...), etc.
    ${#dates.monthNameShort(date)}         // also arrayMonthNameShort(...), listMonthNameShort(...), etc.
    ${#dates.year(date)}                   // also arrayYear(...), listYear(...), etc.
    ${#dates.dayOfWeek(date)}              // also arrayDayOfWeek(...), listDayOfWeek(...), etc.
    ${#dates.dayOfWeekName(date)}          // also arrayDayOfWeekName(...), listDayOfWeekName(...), etc.
    ${#dates.dayOfWeekNameShort(date)}     // also arrayDayOfWeekNameShort(...), listDayOfWeekNameShort(...), etc.
    ${#dates.hour(date)}                   // also arrayHour(...), listHour(...), etc.
    ${#dates.minute(date)}                 // also arrayMinute(...), listMinute(...), etc.
    ${#dates.second(date)}                 // also arraySecond(...), listSecond(...), etc.
    ${#dates.millisecond(date)}            // also arrayMillisecond(...), listMillisecond(...), etc.

    ${#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)}

    ${#dates.createNow()}
    ${#dates.createNowForTimeZone()}
    ${#dates.createToday()}
    ${#dates.createTodayForTimeZone()}

2.5 캘린더


#calendars: #dates와 유사하지만 java에 대해서는util.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)}

    ${#calendars.format(cal, 'dd/MMM/yyyy HH:mm')}
    ${#calendars.arrayFormat(calArray, 'dd/MMM/yyyy HH:mm')}
    ${#calendars.listFormat(calList, 'dd/MMM/yyyy HH:mm')}
    ${#calendars.setFormat(calSet, 'dd/MMM/yyyy HH:mm')}

    ${#calendars.day(date)}                // also arrayDay(...), listDay(...), etc.
    ${#calendars.month(date)}              // also arrayMonth(...), listMonth(...), etc.
    ${#calendars.monthName(date)}          // also arrayMonthName(...), listMonthName(...), etc.
    ${#calendars.monthNameShort(date)}     // also arrayMonthNameShort(...), listMonthNameShort(...), etc.
    ${#calendars.year(date)}               // also arrayYear(...), listYear(...), etc.
    ${#calendars.dayOfWeek(date)}          // also arrayDayOfWeek(...), listDayOfWeek(...), etc.
    ${#calendars.dayOfWeekName(date)}      // also arrayDayOfWeekName(...), listDayOfWeekName(...), etc.
    ${#calendars.dayOfWeekNameShort(date)} // also arrayDayOfWeekNameShort(...), listDayOfWeekNameShort(...), etc.
    ${#calendars.hour(date)}               // also arrayHour(...), listHour(...), etc.
    ${#calendars.minute(date)}             // also arrayMinute(...), listMinute(...), etc.
    ${#calendars.second(date)}             // also arraySecond(...), listSecond(...), etc.
    ${#calendars.millisecond(date)}        // also arrayMillisecond(...), listMillisecond(...), etc.

    ${#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)}

    ${#calendars.createForTimeZone(year,month,day,timeZone)}
    ${#calendars.createForTimeZone(year,month,day,hour,minute,timeZone)}
    ${#calendars.createForTimeZone(year,month,day,hour,minute,second,timeZone)}
    ${#calendars.createForTimeZone(year,month,day,hour,minute,second,millisecond,timeZone)}

    ${#calendars.createNow()}
    ${#calendars.createNowForTimeZone()}
    ${#calendars.createToday()}
    ${#calendars.createTodayForTimeZone()}

2.5 숫자


#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,'POINT')}
    ${#numbers.listFormatInteger(numList,3,'POINT')}
    ${#numbers.setFormatInteger(numSet,3,'POINT')}

    ${#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,'COMMA')}
    ${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')}
    ${#numbers.listFormatDecimal(numList,3,2,'COMMA')}
    ${#numbers.setFormatDecimal(numSet,3,2,'COMMA')}

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

    ${#numbers.formatCurrency(num)}
    ${#numbers.arrayFormatCurrency(numArray)}
    ${#numbers.listFormatCurrency(numList)}
    ${#numbers.setFormatCurrency(numSet)}

    ${#numbers.formatPercent(num)}
    ${#numbers.arrayFormatPercent(numArray)}
    ${#numbers.listFormatPercent(numList)}
    ${#numbers.setFormatPercent(numSet)}

    ${#numbers.formatPercent(num, 3, 2)}
    ${#numbers.arrayFormatPercent(numArray, 3, 2)}
    ${#numbers.listFormatPercent(numList, 3, 2)}
    ${#numbers.setFormatPercent(numSet, 3, 2)}

    ${#numbers.sequence(from,to)}
    ${#numbers.sequence(from,to,step)}

2.6 문자열


#strings:String 객체의 유용한 방법
    ${#strings.toString(obj)}                           // also array*, list* and set*

    ${#strings.isEmpty(name)}
    ${#strings.arrayIsEmpty(nameArr)}
    ${#strings.listIsEmpty(nameList)}
    ${#strings.setIsEmpty(nameSet)}

    ${#strings.defaultString(text,default)}
    ${#strings.arrayDefaultString(textArr,default)}
    ${#strings.listDefaultString(textList,default)}
    ${#strings.setDefaultString(textSet,default)}

    ${#strings.contains(name,'ez')}                     // also array*, list* and set*
    ${#strings.containsIgnoreCase(name,'ez')}           // also array*, list* and set*

    ${#strings.startsWith(name,'Don')}                  // also array*, list* and set*
    ${#strings.endsWith(name,endingFragment)}           // also array*, list* and set*

    ${#strings.indexOf(name,frag)}                      // also array*, list* and set*
    ${#strings.substring(name,3,5)}                     // also array*, list* and set*
    ${#strings.substringAfter(name,prefix)}             // also array*, list* and set*
    ${#strings.substringBefore(name,suffix)}            // also array*, list* and set*
    ${#strings.replace(name,'las','ler')}               // also array*, list* and set*

    ${#strings.prepend(str,prefix)}                     // also array*, list* and set*
    ${#strings.append(str,suffix)}                      // also array*, list* and set*

    ${#strings.toUpperCase(name)}                       // also array*, list* and set*
    ${#strings.toLowerCase(name)}                       // also array*, list* and set*

    ${#strings.arrayJoin(namesArray,',')}
    ${#strings.listJoin(namesList,',')}
    ${#strings.setJoin(namesSet,',')}
    ${#strings.arraySplit(namesStr,',')}                // returns String[]
    ${#strings.listSplit(namesStr,',')}                 // returns List
    ${#strings.setSplit(namesStr,',')}                  // returns Set

    ${#strings.trim(str)}                               // also array*, list* and set*

    ${#strings.length(str)}                             // also array*, list* and set*

    ${#strings.abbreviate(str,10)}                      // also array*, list* and set*

    ${#strings.capitalize(str)}                         // also array*, list* and set*
    ${#strings.unCapitalize(str)}                       // also array*, list* and set*

    ${#strings.capitalizeWords(str)}                    // also array*, list* and set*
    ${#strings.capitalizeWords(str,delimiters)}         // also array*, list* and set*

    ${#strings.escapeXml(str)}                          // also array*, list* and set*
    ${#strings.escapeJava(str)}                         // also array*, list* and set*
    ${#strings.escapeJavaScript(str)}                   // also array*, list* and set*
    ${#strings.unescapeJava(str)}                       // also array*, list* and set*
    ${#strings.unescapeJavaScript(str)}                 // also array*, list* and set*

    ${#strings.equals(first, second)}
    ${#strings.equalsIgnoreCase(first, second)}
    ${#strings.concat(values...)}
    ${#strings.concatReplaceNulls(nullValue, values...)}

    ${#strings.randomAlphanumeric(count)}

2.7 객체


#objects: 일반 객체의 유용한 방법
    ${#objects.nullSafe(obj,default)}
    ${#objects.arrayNullSafe(objArray,default)}
    ${#objects.listNullSafe(objList,default)}
    ${#objects.setNullSafe(objSet,default)}

2.8 부울 값


#bools: 부울 값 평가를 위한 실용적인 방법
    ${#bools.isTrue(obj)}
    ${#bools.arrayIsTrue(objArray)}
    ${#bools.listIsTrue(objList)}
    ${#bools.setIsTrue(objSet)}

    ${#bools.isFalse(cond)}
    ${#bools.arrayIsFalse(condArray)}
    ${#bools.listIsFalse(condList)}
    ${#bools.setIsFalse(condSet)}

    ${#bools.arrayAnd(condArray)}
    ${#bools.listAnd(condList)}
    ${#bools.setAnd(condSet)}

    ${#bools.arrayOr(condArray)}
    ${#bools.listOr(condList)}
    ${#bools.setOr(condSet)}

2.9 Arrays 배열


#arrays: 배열의 실용적인 방법
    ${#arrays.toArray(object)}
    ${#arrays.toStringArray(object)}
    ${#arrays.toIntegerArray(object)}
    ${#arrays.toLongArray(object)}
    ${#arrays.toDoubleArray(object)}
    ${#arrays.toFloatArray(object)}
    ${#arrays.toBooleanArray(object)}
    ${#arrays.length(array)}
    ${#arrays.isEmpty(array)}
    ${#arrays.contains(array, element)}
    ${#arrays.containsAll(array, elements)}

2.10 List 컬렉션


#lists:list 컬렉션의 유용한 방법
    ${#lists.toList(object)}
    ${#lists.size(list)}
    ${#lists.isEmpty(list)}
    ${#lists.contains(list, element)}
    ${#lists.containsAll(list, elements)}
    ${#lists.sort(list)}
    ${#lists.sort(list, comparator)}

2.11 Set 컬렉션


#sets:set 컬렉션의 유용한 방법
${#sets.toSet(object)}

${#sets.size(set)}
${#sets.isEmpty(set)}

${#sets.contains(set, element)}
${#sets.containsAll(set, elements)}

2.12 맵 컬렉션


#maps:map 집합의 실용적인 방법
${#maps.size(map)}

${#maps.isEmpty(map)}

${#maps.containsKey(map, key)}
${#maps.containsAllKeys(map, keys)}
${#maps.containsValue(map, value)}
${#maps.containsAllValues(map, value)}

2.13 모임


#aggregates: 배열이나 집합에 집합을 만드는 실용 프로그램 방법
${#aggregates.sum(array)}
${#aggregates.sum(collection)}

${#aggregates.avg(array)}
${#aggregates.avg(collection)}

2.14 번호


#ids: 중복될 수 있는 id 속성을 처리하는 실용 프로그램 방법(예를 들어 교체의 결과)
${#ids.seq('someId')}

${#ids.next('someId')}
${#ids.prev('someId')}

좋은 웹페이지 즐겨찾기