Я хотел бы использовать представления GSP вместо представлений JSP / JSTL в простом старом приложении Spring MVC. Я добавил Groovy.servlet.TemplateServlet в web.xml следующим образом:
<servlet>
<servlet-name>GroovyTemplate</servlet-name>
<servlet-class>groovy.servlet.TemplateServlet</servlet-class>
<init-param>
<param-name>template.engine</param-name>
<param-value>groovy.text.GStringTemplateEngine</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>GroovyTemplate</servlet-name>
<url-pattern>*.gsp</url-pattern>
</servlet-mapping>
И настроил Spring InternalResourceViewResolver для загрузки файлов GPS. До этого момента все работало нормально, но для того, чтобы предоставить значения в Модели для шаблона, мне пришлось проделать некоторые трюки (создать подкласс TemplateServlet и добавить их в ServletBinding).
Следующим моим препятствием является то, что JSTL по умолчанию экранирует XML. при использовании тега c: out, а в Grails есть понятие кодеков для автоматического исключения значений, используемых в GSP. Описанный выше шаблонный метод не выполняет экранирование по умолчанию, что требует от разработчиков быть очень осторожными, чтобы избежать уязвимостей XSS.
Есть ли другой (лучший) способ использования GSP, включая автоматическое экранирование, в простом приложении Spring MVC без использования Grails?