FreemarkerEngine修改默认版本参数

This commit is contained in:
Looly 2024-02-19 18:45:38 +08:00
parent 4f83c48d38
commit 067d7dc495
6 changed files with 46 additions and 6 deletions

View File

@ -2,9 +2,10 @@
# 🚀Changelog # 🚀Changelog
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.8.27(2024-02-10) # 5.8.27(2024-02-19)
### 🐣新特性 ### 🐣新特性
* 【extra 】 FreemarkerEngine修改默认版本参数
### 🐞Bug修复 ### 🐞Bug修复

View File

@ -529,7 +529,7 @@ public class MapUtil {
} }
/** /**
* 将键值对转换为二维数组第一维是key第二是value * 将键值对转换为二维数组第一维是key第二是value
* *
* @param map map * @param map map
* @return 数组 * @return 数组

View File

@ -10,12 +10,12 @@ import cn.hutool.core.io.IoUtil;
/** /**
* 抽象模板提供将模板融合后写出到文件返回字符串等方法 * 抽象模板提供将模板融合后写出到文件返回字符串等方法
* *
* @author looly * @author looly
* *
*/ */
public abstract class AbstractTemplate implements Template{ public abstract class AbstractTemplate implements Template{
@Override @Override
public void render(Map<?, ?> bindingMap, File file) { public void render(Map<?, ?> bindingMap, File file) {
BufferedOutputStream out = null; BufferedOutputStream out = null;
@ -26,7 +26,7 @@ public abstract class AbstractTemplate implements Template{
IoUtil.close(out); IoUtil.close(out);
} }
} }
@Override @Override
public String render(Map<?, ?> bindingMap) { public String render(Map<?, ?> bindingMap) {
final StringWriter writer = new StringWriter(); final StringWriter writer = new StringWriter();

View File

@ -103,7 +103,7 @@ public class FreemarkerEngine implements TemplateEngine {
config = new TemplateConfig(); config = new TemplateConfig();
} }
final Configuration cfg = new Configuration(Configuration.VERSION_2_3_28); final Configuration cfg = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
cfg.setLocalizedLookup(false); cfg.setLocalizedLookup(false);
cfg.setDefaultEncoding(config.getCharset().toString()); cfg.setDefaultEncoding(config.getCharset().toString());

View File

@ -0,0 +1,38 @@
package cn.hutool.extra.template;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.extra.template.engine.freemarker.FreemarkerEngine;
import lombok.Data;
import org.junit.Test;
public class Issue3488Test {
@Test
public void freemarkerTest() {
final TemplateConfig config = new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH);
config.setCustomEngine(FreemarkerEngine.class);
config.setCharset(CharsetUtil.CHARSET_UTF_8);
final TemplateEngine engine = TemplateUtil.createEngine(config);
Template template = engine.getTemplate("issue3488.ftl");
final UserService userService = new UserService();
userService.setOperator("hutool");
final PaymentInfo paymentInfo = new PaymentInfo();
paymentInfo.setUserService(userService);
String result = template.render(Dict.create().set("paymentInfo", paymentInfo));
//Console.log(result);
//Assert.assertEquals("你好,hutool", result);
}
@Data
static class PaymentInfo{
private UserService userService;
}
@Data
static class UserService{
private String operator;
}
}

View File

@ -0,0 +1 @@
hello,${paymentInfo}