在freemarker spring mvc应用程序中配置自动转义
我正在使用SpringMVC和在freemarker spring mvc应用程序中配置自动转义,spring,freemarker,Spring,Freemarker,我正在使用SpringMVC和freemarker-2.3.27-incubating.jar。 和视图解析器的bean配置,如下所示 <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/"/> <prop
freemarker-2.3.27-incubating.jar
。
和视图解析器的bean配置,如下所示
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/"/>
<property name="freemarkerSettings">
<props>
<prop key="template_exception_handler">rethrow</prop>
<prop key="number_format">0.########</prop>
<prop key="date_format">dd/MM/yyyy</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".ftl"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="exposeRequestAttributes" value="true"/>
<property name="exposeSessionAttributes" value="true"/>
<property name="requestContextAttribute" value="rc"/>
</bean>
重演
0.########
年月日
在哪里以及如何使用
或
来启用HTML auto-scape
?仅在模板文件开头添加的#ftl
标记。但我建议在freemarkerSettings
属性中将recognize\u standard\u file\u extensions
设置为true
,然后使用.ftlh
文件扩展名,而不是.ftl
。或者,更好的是,您将不兼容的\u改进
设置为2.3.27
,从而启用识别标准文件扩展名
和一些修复。(最后同样重要的一点是,如果出于某种原因,您希望.ftl
使用此功能,您可以在freemarkerSettings
属性中将output\u format
设置为htmloutformat
。这是否意味着2.3.27 HTML
。但这行不通是的。(当然,没有评论。)什么不起作用?没有对这三个支柱的评论,项目一次又一次的重建最终无法运行。当我尝试不使用output\u format
时,项目运行,但${.output\u format}
打印未定义的和${.auto\u esc?c}
打印假。。。很抱歉,设置值应该是htmloutformat
(类名),而不是HTML
。我在回答中已经解决了这个问题。(但在配置级别上,仍然建议简单地使用.ftlh
文件扩展名,而不是设置输出格式
)。仅对.ftlh
文件使用HTML自动转义(如文档中所建议的)可避免遗留模板的此类问题。但是,如果必须使用ftl
文件扩展名,则可以使用templateConfigurations
设置(请参阅)为不同的模板设置不同的输出格式(如UndefinedOutputFormat
)。