我想在普通的旧 Spring MVC 应用程序中使用 GSP 视图而不是 JSP/JSTL 视图。我在 web.xml 中添加了一个 groovy.servlet.TemplateServlet,如下所示:
<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 在使用 c:out 标记时默认转义 XML,而 Grails 具有编解码器的概念来自动转义 GSP 中使用的值。上述模板方法默认不转义,需要开发者非常小心避免XSS漏洞。
是否有另一种(更好的)使用 GSP 的方法,包括在不使用 Grails 的普通 Spring MVC 应用程序中自动转义?