我升级到Freemarker 2.3.24以便将设置output_format用作HTMLOutputFormat并启用自动转义但是当我使用spring.ftl从属性文件中读取值时,我得到“使用?html(遗留转义)不是使用标记输出格式(HTML)启用自动转义时允许,以避免双重逃避错误。“有谁知道如何将Freemarker自动转义与spring属性文件阅读器集成?
这是我的配置bean:
this.uploadCsv=function(file){
alert("inside upload csv service ");
return $http.post('http://localhost:3005/customers/csv').then(function(response){
deferred.resolve(response.data);
return deferred.promise;
},
function(error){
deferred.reject(error);
return deferred.promise;
});
};//end of uploadCsv function
这是我的test.ftl
<bean id="freeMarkerConfigurer"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/views/"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="freemarkerSettings">
<props>
<prop key="output_format">HTMLOutputFormat</prop>
</props>
</property>
</bean>
我收到此错误:
<#import "/spring.ftl" as spring/>
<html>
<div>hello</div>
<p><@spring.message "welcome"/></p>
</html>
答案 0 :(得分:0)
由于你有一些“遗留”模板(来自Spring),你应该单独留下全局output_format
。相反,您应该仅为非旧版模板指定output_format
。这可以通过两种方式完成。一个是使用“ftlh”文件扩展名而不是“ftl”(假设你想要HTML转义),然后将recognize_standard_file_extensions
设置为true
。另一个是使用template_configurations
设置(请参阅http://freemarker.org/docs/pgui_config_templateconfigurations.html)指定一些其他名称模式以将output_format
与之关联(例如与Spring模板不匹配的任何内容)。