В рамках проекта, над которым я работаю, мы переходим с 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" )
Обратите внимание, что объект «запрос» — это не HttpServletRequest, а класс приложения. Есть гораздо более сложные примеры, которые слишком много, чтобы показать.