我正在使用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}"]]
是否有人可以说我如何解决这个问题?
对不起我的英文
答案 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的未来问题,请删除您问题中不需要的任何内容。您不需要发布评论代码。