Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在freemarker spring mvc应用程序中配置自动转义_Spring_Freemarker - Fatal编程技术网

在freemarker spring mvc应用程序中配置自动转义

在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

我正在使用SpringMVC和
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
)。