Как и что такое использование Lambda в шаблоне усов с использованием JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Как и что такое использование Lambda в шаблоне усов с использованием Java

Сообщение Anonymous »

Мне было поручено использовать механизм шаблонов усов с единственной целью — рендеринга шаблонов. Пока я исследовал, как его использовать, я наткнулся на лямбда-выражения, которые до сих пор не могу уловить Например, в официальной документации по усам упоминается, что их использование

Код: Выделить всё

Template:

{{#wrapped}}{{name}} is awesome.{{/wrapped}}

Hash:

{
"name": "Willy",
"wrapped": function(text) {
return "" + text + "[/b]"[b]  }
}

Output:

 Willy is awesome.[/b][b]
Итак, ожидаемый результат: Вилли потрясающий [/b], но я не могу получить тот же результат, который я передал

Код: Выделить всё

{
"tId": "function",
"data": {
"name": "Vishnu",
"wrapped": "function(text) { return \"\" + text + \"[/b]\"; }",
}
}
Несмотря на то, что шаблон один и тот же, я получаю только «Вишну потрясающий», за исключением тегов. Что я конкретно получу? текст, выделенный жирным шрифтом, или текст с тегами
Я что-то упустил? Как и как работают лямбды в этом шаблонизаторе?
Аналогично не работает другой пример в той же документации

Код: Выделить всё

Template:

* {{time.hour}}
* {{today}}

Hash:

{
"year": 1970,
"month": 1,
"day": 1,
"time": function() {
return {
"hour": 0,
"minute": 0,
"second": 0
}
},
"today": function() {
return "{{year}}-{{month}}-{{day}}"
}
}

Output:

* 0
* 1970-1-1
В результате я получаю функцию() {return ("{{year}}-{{месяц}}-{{день}}";)Когда я передаю JSON как \"time": "function() { return {\"час\": 0, \"минута\": 0, \"секунда\": 0} };", "сегодня ": "function() {return (\"{{year}}-{{month}}-{{day}}\";)}" \
Ссылаемая документация: https://mustache.github.io/mustache.5.html
В некоторых документах, например, https://www.c- Sharpcorner.com/article/getting-started-with-mustache-js/ упоминает, что

лямбда-выражения используются для преобразования данных перед их вставкой в ​​шаблон. Лямбда — это функция, которая принимает строку в качестве входных данных и возвращает строку в качестве выходных данных.

ОБНОВЛЕНИЕ 1 :
В большинстве решений указано, что я имею в виду документ шаблона усов на основе JS, поэтому я удалил его
ОБНОВЛЕНИЕ 2
Во введении к Mustache пример для лямбды все еще расплывчат. Мне удалось получить перечисленные задачи, но я все еще не могу заставить работать лямбда-функцию. Я пытаюсь передать следующий JSON в качестве входных данных

Код: Выделить всё

{
"tId": "test",
"data": {
"todos": [
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
},
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
},
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
}
]
}
}
и код

Код: Выделить всё

if (templateId.equalsIgnoreCase("test")) {

Object doneSinceValue = value;

Map templateData2 = new HashMap();
templateData2.put(key, handleDone);
Mustache mustache = mustacheFactory.compile(new StringReader(dataRcvd.trim()), "main");
mustache.execute(writer, templateData2).flush();

}

// Changed the code
Function handleDone = (obj) -> done ? String.format("Done %s minutes ago", obj) : "";
}
Что я делаю не так? Любые комментарии (я приложил готовый код для справки).
Сервисный уровень приложения, в котором существует ссылка на Github.
Что это делает иметь в виду ? Мне бы хотелось получить упрощенное объяснение того же самого.
Также мне нужно понять, как передать эту лямбду в JSON?
Любая помощь приветствуется

Подробнее здесь: https://stackoverflow.com/questions/785 ... using-java

Вернуться в «JAVA»