gpt4 book ai didi

spring - 以编程方式解析 Thymeleaf 模板

转载 作者:行者123 更新时间:2023-12-05 00:57:20 25 4
gpt4 key购买 nike

我正在尝试使用 Thymeleaf 模板呈现 XML/JSON。我不想使用模板名称渲染 View ,只想解析模板,如下所示。麻烦的是我得到的只是模板名称,而不是它的内容。

设置:

@Bean
SpringResourceTemplateResolver xmlTemplateResolver(ApplicationContext appCtx) {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();

templateResolver.setApplicationContext(appCtx);
templateResolver.setPrefix("classpath:/templates/");
templateResolver.setSuffix(".xml");
templateResolver.setTemplateMode(XML);
templateResolver.setCharacterEncoding(UTF_8.name());
templateResolver.setCacheable(false);

return templateResolver;
}

@Bean
SpringTemplateEngine templateEngine(ApplicationContext appCtx) {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(xmlTemplateResolver(appCtx));

return templateEngine;
}

模板(src/main/resources/templates/breakfast-menu.xml):
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>${item['name']}</name>
<price>${item['price']}</price>
<description>${item['description']}</description>
<calories>${item['calories']}</calories>
</food>
</breakfast_menu>

用法:
@Autowired
SpringTemplateEngine templateEngine;

someMethod() {
Context context = new Context();
context.setVariable("item", item);
item.put("name", "Waffle");
String content = templateEngine.process("breakfast-menu", context);

// content == "breakfast-menu". WTH?
}

使用 Thymeleaf 3.0.0.BETA01。

最佳答案

我在 Thymeleaf 的帮助下解决了这个问题 user forum .出于我不知道的原因,templateEngine.addTemplateResolver不起作用,但 templateEngine.setTemplateResolver做。 XML 和 JSON 输出的模板如下所示:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name th:text="${item['name']}"></name>
<price th:text="${item['price']}"></price>
<description th:text="${item['description']}"></description>
<calories th:text="${item['calories']}"></calories>
</food>
</breakfast_menu>

JSON:
{
"food": {
"name": "[[${item['name']}]]",
"price": "[[${item['price']}]]",
"description": "[[${item['description']}]]",
"calories": "[[${item['calories']}]]"
}
}

关于spring - 以编程方式解析 Thymeleaf 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com