Nano Hash - криптовалюты, майнинг, программирование

Невозможно перечислить хэш для пар ключ-значение в Freemarker

Что не так со следующим шаблоном?

package ${packageName}

public interface ${entityName} {

<#list methods as methodName, map >
public void ${methodName}(${map}) ;
</#list>

}

что дает на версии 2.3.23:

freemarker.core.ParseException: Syntax error in template "javaclass.ftl" in line 5, column 29:
Encountered ",", but was expecting:
    ">"
    at freemarker.core.FMParser.generateParseException(FMParser.java:5251)
    at freemarker.core.FMParser.jj_consume_token(FMParser.java:5122)
    at freemarker.core.FMParser.List(FMParser.java:1431)
    at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2827)
    at freemarker.core.FMParser.MixedContent(FMParser.java:3081)
    at freemarker.core.FMParser.OptionalBlock(FMParser.java:3253)
    at freemarker.core.FMParser.Root(FMParser.java:3432)
    at freemarker.template.Template.<init>(Template.java:208)
    at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:495)

В документации приведен следующий пример для хеш-структуры.

Список хэшей очень похож, но вам нужно указать два имени переменных после as; один для хэш-ключа, а другой для связанного значения. Предполагая, что продукты { "яблоко": 5, "банан": 10, "киви": 15}:

<#list products as name, price>
  <p>${name}: ${price}
</#list>

  <p>apple: 5
  <p>banan: 10
  <p>kiwi: 15

Обратите внимание, что мой пример перед отправкой контента.

16.05.2017

Ответы:


1

Это ожидается, поскольку в версии 2.3.25 был добавлен список ключей-значений.

http://freemarker.org/docs/ref_directive_list.html#ref.directive.list

... и перечислить пары ключ-значение хеша (начиная с 2.3.25):

<#list hash as key, value>
  Part repeated for each key-value pair
</#list>

Итак, обновите, если можете, или перепишите свой список.

Смотрите также:

17.05.2017
  • 2.3.25 все еще находится в разработке? Это опубликованная документация, но я выбрал версию без инкубации на maven!? mvnrepository.com/artifact/org.freemarker/freemarker 17.05.2017
  • Вы можете выбрать последнюю версию. Хотя статус инкубации не обязательно является отражением полноты или стабильности кода, он указывает на то, что проект еще не получил полного одобрения ASF. freemarker.org 17.05.2017
  • Спасибо за разъяснение, это было источником моего замешательства. 18.05.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..