В рамках проекта, над которым я работаю, мы переходим с Velocity на JSP. Мне нужно превратить набор существующих шаблонов Velocity в JSP. Мы могли бы часами обсуждать, почему это было решено (отчасти по моей вине), какой из них лучше и лучший способ отговорить руководство от этого пути, но это было бы пустой тратой времени, поскольку они стремятся к этому.
Итак, что я ищу, так это набор шаблонов, лучших практик, что у вас есть, чтобы выручить меня. В файле глобальной библиотеки есть много макросов Velocity, которые используются в различных шаблонах. Я думаю о преобразовании каждого макроса в скриптлет JSP и переводе макроса на Java. Затем я включил бы этот файл со всеми скриптлетами в каждую JSP либо с помощью директивы include, либо с помощью jsp: include. Я также думал о преобразовании каждого вызова макроса в скриптлет. Эти макросы имеют параметры, которые являются bean-компонентами, определенными в классе Spring ModelAndView.
Предварительные тесты показывают, что этот подход не будет работать. Кажется, я получаю ошибки компиляции JSP. Но я могу пропустить ошибку с моей стороны.
Я запускаю это веб-приложение на OC4J версии 10.1.3.4.0.
Вот простой пример того, с чем мне приходится иметь дело. Это в файле VM_global_library.vm:
#macro( showObjectErrors $objectName)
#if ($request.errorSystem.hasErrors($objectName))
<table>
#foreach ($error in $request.errorSystem.getErrors($objectName))
<tr>
<td class="acError">$error</td>
</tr>
#end
</table>
#end
#end
И он называется в других файлах так:
#showObjectErrors( "logonForm" )
Обратите внимание, что объект request - это не HttpServletRequest, а класс приложения.
Есть гораздо более сложные примеры, которые слишком много, чтобы показывать.