Я использую распорки 2 и шаблоны скорости для генерации ответа JSON.Теперь улов заключается в том, что ответ не генерируется с использованием некоторого плагина скорости JSON. Это просто строка, которая появляется, когда скорость выполняется с ее разбором и обработкой ответа, а на стороне клиента я делаю eval , чтобы получить ответот строки до JSON.
Что мне действительно нужно, так это какое-то решение на стороне скорости или распорок, где после того, как результат сгенерирован по скорости, фреймворк должен вызвать мой API, где я могу преобразовать выходные данные файла vm.в JSON, используя мою собственную логику.Как этого добиться?
Например:
- В браузере с использованием JavaScript я разработал виджет дерева, который я использую для отображения комментариев в древовидной структуре.
- Скажитепользователь нажимает кнопку комментариев.
- Мой виджет пользовательского интерфейса запустит AJAX для получения данных для комментариев.
- Этот запрос перехватывается инфраструктурой STRUTS 2.
- Он вызовет, скажем,
getComments()
API действия и заполнит массив arrayList объектом комментария, скажем, cmt. - Теперь ответ обрабатывается шаблоном скорости (*. Vm).
Сейчас в vm я пишу такой код:
{ "CommentsData" : [
#set($sep="")
#foreach($c in $cmt)
$sep
{
"commentText" : $c.getText()
}
#set($sep=",")
#end
}
Теперь окончательный ответ может получиться следующим образом:
{ "CommentsData" : [
{
"commentText" : "This is comment 1"
},
{
"commentText" : "This is comment 2"
},
{
"commentText" : "This is comment 3"
},
{
"commentText" : "This is comment 4"
}`
]
}
Теперь это может выглядеть как JSON, но это не строгий JSON;Я имею в виду, что если я пропущу где-нибудь ,
, то на стороне клиента в JavaScript мой eval может завершиться с ошибкой или JSON.parse()
не удастся, но в шаблоне скорости я теперь понимаю, что JSON искажен.
Так что, как только вышеупомянутый шаблон скорости сгенерирован, мне нужен некоторый контроль, где я могу написать некоторый код Java, чтобы сделать некоторые проверки ответа.
Я вижучто мой подход к использованию шаблона скорости для генерации вывода JSON (на самом деле это строка, похожая на JSON) может быть неправильным.Но все же мне нужно обработать ответ каждого написанного мной шаблона скорости.