Thymeleafチュートリアル:第19章付録B:便利な式

目次



19付録B:便利な表現



実装情報



#execInfo :Thymeleaf Standard Expressionsによって内部的に処理されたテンプレートに関する有用な情報を提供する式



/* * ==================== * See javadoc API for class org.thymeleaf.expression.ExecutionInfo * ==================== */ /* *      "".    *       "A",       * "A"      "B",   "B"    *    "B"     */ ${#execInfo.templateName} ${#execInfo.templateMode} /* *      "".    *       "A",       * "A"      "B",     * "A"    "A". */ ${#execInfo.processedTemplateName} ${#execInfo.processedTemplateMode} /* *   (  , List<String>  List<TemplateMode>)  *  .     * " " (),   "",  *     ,     *      */ ${#execInfo.templateNames} ${#execInfo.templateModes} /* *   ,   (   *   )  'templateNames'  'templateModes',    * List<TemplateData>     */ ${#execInfo.templateStack}
      
      





メッセージ



#messages :構文#{...}を使用して受信されるのと同じように、式内の外部メッセージを受信するためのユーティリティ



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Messages * ==================== */ /* *   .   ,   , *   /  /   (      /  /  *  ). *    ,     (, '??msgKey??') */ ${#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)} /* *     null. Null    , *       . */ ${#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)}
      
      





URI / URL



#uris :Thymeleaf標準式内でURI / URL操作(エスケープ/デエスケープ)を実行するサービスオブジェクト。



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Uris * ==================== */ /* * / URI/URL  */ ${#uris.escapePath(uri)} ${#uris.escapePath(uri, encoding)} ${#uris.unescapePath(uri)} ${#uris.unescapePath(uri, encoding)} /* * / URI/URL   ( '/' ) */ ${#uris.escapePathSegment(uri)} ${#uris.escapePathSegment(uri, encoding)} ${#uris.unescapePathSegment(uri)} ${#uris.unescapePathSegment(uri, encoding)} /* * /  (#frag) */ ${#uris.escapeFragmentId(uri)} ${#uris.escapeFragmentId(uri, encoding)} ${#uris.unescapeFragmentId(uri)} ${#uris.unescapeFragmentId(uri, encoding)} /* * /   (?var=value) */ ${#uris.escapeQueryParam(uri)} ${#uris.escapeQueryParam(uri, encoding)} ${#uris.unescapeQueryParam(uri)} ${#uris.unescapeQueryParam(uri, encoding)}
      
      





コンバージョン数



#conversions :テンプレート内の任意の場所で変換サービスを呼び出すことができます:



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Conversions * ==================== */ /* *     'object'  *   */ ${#conversions.convert(object, 'java.util.TimeZone')} ${#conversions.convert(object, targetClass)}
      
      





日程



#dates :java.util.Dateオブジェクトメソッドユーティリティ:



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Dates * ==================== */ /* *       *    arrays, lists  sets */ ${#dates.format(date)} ${#dates.arrayFormat(datesArray)} ${#dates.listFormat(datesList)} ${#dates.setFormat(datesSet)} /* *    ISO8601 *     arrays, lists  sets */ ${#dates.formatISO(date)} ${#dates.arrayFormatISO(datesArray)} ${#dates.listFormatISO(datesList)} ${#dates.setFormatISO(datesSet)} /* *      *     arrays, lists  sets */ ${#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')} /* *    *     arrays, lists  sets */ ${#dates.day(date)} //   arrayDay(...), listDay(...), etc. ${#dates.month(date)} //   arrayMonth(...), listMonth(...), etc. ${#dates.monthName(date)} //   arrayMonthName(...), listMonthName(...), etc. ${#dates.monthNameShort(date)} //   arrayMonthNameShort(...), listMonthNameShort(...), etc. ${#dates.year(date)} //   arrayYear(...), listYear(...), etc. ${#dates.dayOfWeek(date)} //   arrayDayOfWeek(...), listDayOfWeek(...), etc. ${#dates.dayOfWeekName(date)} //   arrayDayOfWeekName(...), listDayOfWeekName(...), etc. ${#dates.dayOfWeekNameShort(date)} //   arrayDayOfWeekNameShort(...), listDayOfWeekNameShort(...), etc. ${#dates.hour(date)} //   arrayHour(...), listHour(...), etc. ${#dates.minute(date)} //   arrayMinute(...), listMinute(...), etc. ${#dates.second(date)} //   arraySecond(...), listSecond(...), etc. ${#dates.millisecond(date)} //   arrayMillisecond(...), listMillisecond(...), etc. /* *    (java.util.Date) */ ${#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)} /* *    (java.util.Date)  / */ ${#dates.createNow()} ${#dates.createNowForTimeZone()} /* *    (java.util.Date)   (   00:00) */ ${#dates.createToday()} ${#dates.createTodayForTimeZone()}
      
      





カレンダー



#calendars#datesに似ていますが、java.util.Calendarオブジェクトの場合:



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Calendars * ==================== */ /* *       *     arrays, lists  sets */ ${#calendars.format(cal)} ${#calendars.arrayFormat(calArray)} ${#calendars.listFormat(calList)} ${#calendars.setFormat(calSet)} /* *    ISO8601 *     arrays, lists  sets */ ${#calendars.formatISO(cal)} ${#calendars.arrayFormatISO(calArray)} ${#calendars.listFormatISO(calList)} ${#calendars.setFormatISO(calSet)} /* *      *     arrays, lists  sets */ ${#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')} /* *    *     arrays, lists  sets */ ${#calendars.day(date)} //   arrayDay(...), listDay(...), etc. ${#calendars.month(date)} //   arrayMonth(...), listMonth(...), etc. ${#calendars.monthName(date)} //   arrayMonthName(...), listMonthName(...), etc. ${#calendars.monthNameShort(date)} //   arrayMonthNameShort(...), listMonthNameShort(...), etc. ${#calendars.year(date)} //   arrayYear(...), listYear(...), etc. ${#calendars.dayOfWeek(date)} //   arrayDayOfWeek(...), listDayOfWeek(...), etc. ${#calendars.dayOfWeekName(date)} //   arrayDayOfWeekName(...), listDayOfWeekName(...), etc. ${#calendars.dayOfWeekNameShort(date)} //   arrayDayOfWeekNameShort(...), listDayOfWeekNameShort(...), etc. ${#calendars.hour(date)} //   arrayHour(...), listHour(...), etc. ${#calendars.minute(date)} //   arrayMinute(...), listMinute(...), etc. ${#calendars.second(date)} //   arraySecond(...), listSecond(...), etc. ${#calendars.millisecond(date)} //   arrayMillisecond(...), listMillisecond(...), etc. /* *    (java.util.Calendar) */ ${#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)} /* *    (java.util.Calendar)   / */ ${#calendars.createNow()} ${#calendars.createNowForTimeZone()} /* *    (java.util.Calendar)    (   00:00) */ ${#calendars.createToday()} ${#calendars.createTodayForTimeZone()}
      
      





数字



#numbers :数値オブジェクトのメソッド:



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Numbers * ==================== */ /* * ========================== *    * ========================== */ /* *    . *     arrays, lists  sets */ ${#numbers.formatInteger(num,3)} ${#numbers.arrayFormatInteger(numArray,3)} ${#numbers.listFormatInteger(numList,3)} ${#numbers.setFormatInteger(numSet,3)} /* *       : * 'POINT', 'COMMA', 'WHITESPACE', 'NONE'  'DEFAULT' (  ). *     arrays, lists  sets */ ${#numbers.formatInteger(num,3,'POINT')} ${#numbers.arrayFormatInteger(numArray,3,'POINT')} ${#numbers.listFormatInteger(numList,3,'POINT')} ${#numbers.setFormatInteger(numSet,3,'POINT')} /* * ========================== *    * ========================== */ /* *       *     arrays, lists  sets */ ${#numbers.formatDecimal(num,3,2)} ${#numbers.arrayFormatDecimal(numArray,3,2)} ${#numbers.listFormatDecimal(numList,3,2)} ${#numbers.setFormatDecimal(numSet,3,2)} /* *       ,     . *     arrays, lists  sets */ ${#numbers.formatDecimal(num,3,2,'COMMA')} ${#numbers.arrayFormatDecimal(numArray,3,2,'COMMA')} ${#numbers.listFormatDecimal(numList,3,2,'COMMA')} ${#numbers.setFormatDecimal(numSet,3,2,'COMMA')} /* *       ,       . *     arrays, lists  sets */ ${#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)} /* * =============== *   * =============== */ /* *   ()    x  y */ ${#numbers.sequence(from,to)} ${#numbers.sequence(from,to,step)}
      
      





ひも



#strings :文字列の便利なメソッド:



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Strings * ==================== */ /* * Null-safe toString() */ ${#strings.toString(obj)} //   array*, list* and set* /* *  String   ( null).  trim()   *     arrays, lists  sets */ ${#strings.isEmpty(name)} ${#strings.arrayIsEmpty(nameArr)} ${#strings.listIsEmpty(nameList)} ${#strings.setIsEmpty(nameSet)} /* *  'isEmpty()'     false   ,      true. *     arrays, lists  sets */ ${#strings.defaultString(text,default)} ${#strings.arrayDefaultString(textArr,default)} ${#strings.listDefaultString(textList,default)} ${#strings.setDefaultString(textSet,default)} /* * ,      *     arrays, lists  sets */ ${#strings.contains(name,'ez')} //   array*, list* and set* ${#strings.containsIgnoreCase(name,'ez')} //   array*, list* and set* /* * ,       *   works with arrays, lists or sets */ ${#strings.startsWith(name,'Don')} //   array*, list* and set* ${#strings.endsWith(name,endingFragment)} //   array*, list* and set* /* *   *     arrays, lists  sets */ ${#strings.indexOf(name,frag)} //   array*, list* and set* ${#strings.substring(name,3,5)} //   array*, list* and set* ${#strings.substringAfter(name,prefix)} //   array*, list* and set* ${#strings.substringBefore(name,suffix)} //   array*, list* and set* ${#strings.replace(name,'las','ler')} //   array*, list* and set* /* *        *     arrays, lists  sets */ ${#strings.prepend(str,prefix)} //   array*, list* and set* ${#strings.append(str,suffix)} //   array*, list* and set* /* *     *     arrays, lists  sets */ ${#strings.toUpperCase(name)} //   array*, list* and set* ${#strings.toLowerCase(name)} //   array*, list* and set* /* *     */ ${#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> /* * Trim (     ) *     arrays, lists  sets */ ${#strings.trim(str)} //   array*, list* and set* /* *   *     arrays, lists  sets */ ${#strings.length(str)} //   array*, list* and set* /* *    n     . *     arrays, lists  sets */ ${#strings.abbreviate(str,10)} //   array*, list* and set* /* *       ( ) */ ${#strings.capitalize(str)} //   array*, list* and set* ${#strings.unCapitalize(str)} //   array*, list* and set* /* *        */ ${#strings.capitalizeWords(str)} //   array*, list* and set* ${#strings.capitalizeWords(str,delimiters)} //   array*, list* and set* /* *   */ ${#strings.escapeXml(str)} //   array*, list* and set* ${#strings.escapeJava(str)} //   array*, list* and set* ${#strings.escapeJavaScript(str)} //   array*, list* and set* ${#strings.unescapeJava(str)} //   array*, list* and set* ${#strings.unescapeJavaScript(str)} //   array*, list* and set* /* * Null-safe    */ ${#strings.equals(first, second)} ${#strings.equalsIgnoreCase(first, second)} ${#strings.concat(values...)} ${#strings.concatReplaceNulls(nullValue, values...)} /* *   */ ${#strings.randomAlphanumeric(count)}
      
      





オブジェクト



#objects :一般的なオブジェクトの便利なメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Objects * ==================== */ /* *  ,    null,       *     arrays, lists  sets */ ${#objects.nullSafe(obj,default)} ${#objects.arrayNullSafe(objArray,default)} ${#objects.listNullSafe(objList,default)} ${#objects.setNullSafe(objSet,default)}
      
      





ブール値



#bools :ブール式を操作するための便利なメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Bools * ==================== */ /* *     th:if * (  ). *     arrays, lists  sets */ ${#bools.isTrue(obj)} ${#bools.arrayIsTrue(objArray)} ${#bools.listIsTrue(objList)} ${#bools.setIsTrue(objSet)} /* *    *   works with arrays, lists or sets */ ${#bools.isFalse(cond)} ${#bools.arrayIsFalse(condArray)} ${#bools.listIsFalse(condList)} ${#bools.setIsFalse(condSet)} /* *     AND * Receive an array, a list or a set as parameter */ ${#bools.arrayAnd(condArray)} ${#bools.listAnd(condList)} ${#bools.setAnd(condSet)} /* *   OR * Receive an array, a list or a set as parameter */ ${#bools.arrayOr(condArray)} ${#bools.listOr(condList)} ${#bools.setOr(condSet)}
      
      





配列/配列



#arrays :配列の便利なメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Arrays * ==================== */ /* *   ,     . *      *    , *   Object[]. */ ${#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)}
      
      





リスト



#lists :便利なリストメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Lists * ==================== */ /* *    */ ${#lists.toList(object)} /* *   */ ${#lists.size(list)} /* *     */ ${#lists.isEmpty(list)} /* *         */ ${#lists.contains(list, element)} ${#lists.containsAll(list, elements)} /* *    .      *    . */ ${#lists.sort(list)} ${#lists.sort(list, comparator)}
      
      





セット



#sets :セットの便利なメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Sets * ==================== */ /* *    */ ${#sets.toSet(object)} /* *   */ ${#sets.size(set)} /* *     */ ${#sets.isEmpty(set)} /* *        */ ${#sets.contains(set, element)} ${#sets.containsAll(set, elements)}
      
      





地図



#maps :マップの便利な方法



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Maps * ==================== */ /* *   */ ${#maps.size(map)} /* *  map   */ ${#maps.isEmpty(map)} /* *   map    */ ${#maps.containsKey(map, key)} ${#maps.containsAllKeys(map, keys)} ${#maps.containsValue(map, value)} ${#maps.containsAllValues(map, value)}
      
      





集計



#aggregates :配列またはコレクションを集約するための便利なメソッド



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Aggregates * ==================== */ /* *  .  null,      */ ${#aggregates.sum(array)} ${#aggregates.sum(collection)} /* *  .  null,      */ ${#aggregates.avg(array)} ${#aggregates.avg(collection)}
      
      





ID



#ids :(たとえば、反復の結果として)繰り返すことができるID識別子を処理するためのユーティリティ。



 /* * ==================== * See javadoc API for class org.thymeleaf.expression.Ids * ==================== */ /* *     th: id,       id *,        . */ ${#ids.seq('someId')} /* *    th:for    <label>,         *     #ids.seq(...). *    ,   <label>      #ids.seq(...), * "next" (   "seq")  "prev" (   *  "seq"   . */ ${#ids.next('someId')} ${#ids.prev('someId')}
      
      






All Articles