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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Spring 以编程方式解析ELEAF模板_Spring_Templates_Spring Boot_Thymeleaf - Fatal编程技术网

Spring 以编程方式解析ELEAF模板

Spring 以编程方式解析ELEAF模板,spring,templates,spring-boot,thymeleaf,Spring,Templates,Spring Boot,Thymeleaf,我正在尝试使用Thymeleaf模板呈现XML/JSON。我不想使用模板名称渲染视图,只想解析模板,如下所示。问题是我得到的只是模板名,而不是它的内容 设置: @Bean SpringResourceTemplateResolver xmlTemplateResolver(ApplicationContext appCtx) { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateReso

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

设置:

@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;
}
<?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?
}
模板(src/main/resources/templates/早餐菜单.xml):

@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;
}
<?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的帮助下解决了这个问题。由于我不知道的原因,
templateEngine.addTemplateResolver
不工作,但
templateEngine.settTemplateResolver
工作。XML和JSON输出的模板如下所示:

XML: