Использование представлений GSP в простом Spring MVC без Grails

Я хотел бы использовать представления 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?

9
задан Tomas 3 December 2010 в 22:21
поделиться