Thymeleaf没有显示价值观

时间:2018-04-28 19:26:48

标签: spring-boot thymeleaf

我正在使用Spring-Boot& amp;编写一个小型Web应用程序。 Thymeleaf,但从控制器传递到html页面的值不会出现。

我不知道为什么,但它不起作用。

的pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!--    thymeleaf   -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

配置

@Configuration
public class ThymeleafConfig {

    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setCacheable(false);
        templateResolver.setPrefix("/");
        templateResolver.setSuffix(".html");
        templateResolver.setCacheable(false);
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
        springTemplateEngine.addTemplateResolver(templateResolver());
        return springTemplateEngine;
    }

    @Bean
    public ThymeleafViewResolver viewResolver() {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setOrder(1);
        viewResolver.setViewNames(new String[] {".html", ".xhtml"});
        return viewResolver;
    }

这是 的控制器

@Controller
@RequestMapping("/dyn")
public class DynamicWebPage {

   @RequestMapping(value = "/third", method = RequestMethod.GET)
   public ModelAndView fileDinamicoTerzo() {
        Map<String, Object> model = new HashMap<>();
        model.put("messagge", "ciao");
        ModelAndView mav = new ModelAndView();
        mav.addAllObjects(model);
        mav.setViewName("forward:provadin.html");
        return mav;
    }
}

这是html文件,在这里我应该看到我传递的数据的价值...... html模板

<div th:text="${message}">${message}</div>
<div th:utext="${message}">${message}</div>
<div th:value="${message}">${message}</div>
<div data-th-text="${message}"></div>
<div th:inline="text">[[${message}]]</div>
<div th:inline="text">[[${model.message}]]</div>

这是结果

${message}
${message}
${message}

[[${model.messagge}]]
[["${model.messagge}"]]

是否有人可以说我如何解决这个问题?

对不起我的英文

2 个答案:

答案 0 :(得分:0)

你根本没有运行Thymeleaf。你需要告诉&#34; Spring使用Thymeleaf作为模板引擎。

https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html。第2点和第3点

答案 1 :(得分:0)

你错误拼写了单词&#34; message&#34;。

让我们也清理你的控制器:

@Controller
public class DynamicWebPage {

   @GetMapping("/third")
   public String fileDinamicoTerzo(Model model) {
       model.addAttribute("message", "ciao");
       return "provadin";
   }
}

您的HTML可以包含以下内容:

<span th:remove="tag" th:text="${message}">message</div>

此外,对于有关SO的未来问题,请删除您问题中不需要的任何内容。您不需要发布评论代码。