freemaker的${}拆开
时间: 2023-11-01 10:56:42 浏览: 18
在编辑Word模板时,最好是手动一次性输入完整的${string}标签,或者使用记事本统一将整个${string}编辑好之后,再粘贴至Word中。不要在Word中先输入${},然后再将字符串从其他地方粘贴到{}之间,这样在将Word转换为XML时会导致解析问题,并在Freemarker解析时报错。这是因为在Word中复制时,会复制Word的格式,并且在标签之间添加一些Word格式,导致报错。因此,建议在编辑Freemarker的${}时避免拆开标签。
相关问题
springboot整合freemarker时${xxx?html}报错
在使用Freemarker的时候,我们有时候需要对输出的HTML进行转义,以避免XSS攻击等安全问题。而在Freemarker中,可以使用`${xxx?html}`的方式进行HTML转义,但是在Spring Boot中,如果直接使用`${xxx?html}`的方式,会出现报错的情况。
要解决这个问题,可以在Spring Boot的配置文件application.properties中添加以下配置:
```
spring.freemarker.template.utility-escaping=false
```
或者在Spring Boot的配置类中添加以下配置:
```
@Configuration
public class FreemarkerConfig {
@Autowired
private freemarker.template.Configuration configuration;
@PostConstruct
public void setSharedVariable() {
configuration.setBooleanFormat("true,false");
configuration.setClassicCompatible(true);
configuration.setNumberFormat("#");
configuration.setDateTimeFormat("yyyy-MM-dd HH:mm:ss");
configuration.setDateFormat("yyyy-MM-dd");
configuration.setTimeFormat("HH:mm:ss");
configuration.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
configuration.setWhitespaceStripping(true);
configuration.setSharedVariable("html_escape", new HtmlEscape());
}
}
```
其中,HtmlEscape是一个自定义的Freemarker工具类,代码如下:
```
public class HtmlEscape implements TemplateMethodModelEx {
@Override
public Object exec(List arguments) throws TemplateModelException {
if (arguments != null && arguments.size() > 0) {
SimpleScalar simpleScalar = (SimpleScalar) arguments.get(0);
String value = simpleScalar.getAsString();
return StringEscapeUtils.escapeHtml(value);
}
return null;
}
}
```
这样配置之后,就可以在Spring Boot中正常使用`${xxx?html}`进行HTML转义了。
javafreemarker导出word${}不变
Java和FreeMarker是两种常用的技术工具,可以用来导出Word文档。在使用这两种工具的过程中,我们可以使用${}语法来保持导出的内容不变。
在这个过程中,Java可以作为后端编程语言,用来处理数据和业务逻辑,而FreeMarker则可以用来作为模板引擎,用来区分数据和文本的内容。在导出Word文档时,我们可以使用${}语法将Java中的数据动态地注入到FreeMarker的模板中,最终生成Word文档。
使用${}语法的好处是可以保持导出的内容不变。这是因为${}语法可以在生成Word文档时,根据Java中的数据动态地替换模板中的变量,而不会改变模板本身的内容,保证了导出的Word文档内容的一致性和准确性。
因此,通过Java和FreeMarker导出Word文档时,我们可以使用${}语法来保持导出的内容不变。这样就能够更好地满足用户的需求,提供高质量和准确的Word文档输出。