Spring Boot + Thymeleaf +蒲公英配置不起作用

我正在使用Thymeleaf的Spring Boot,现在我想添加蒲公英数据表,但它不起作用。

这是我的maven依赖项:

 org.springframework.boot spring-boot-starter-parent 1.2.1.RELEASE     org.springframework.boot spring-boot-starter-data-jpa   org.springframework.boot spring-boot-starter-web   org.springframework.boot spring-boot-starter-thymeleaf   org.springframework.boot spring-boot-starter-websocket   org.springframework.boot spring-boot-starter-tomcat provided   org.springframework.boot spring-boot-starter-test test    com.github.dandelion datatables-thymeleaf 0.10.1  

我正在遵循本指南http://dandelion.github.io/dandelion/docs/installation/thymeleaf.html并配置以下bean:

 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public FilterRegistrationBean dandelion() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new DandelionFilter()); registrationBean.addUrlPatterns("/*"); return registrationBean; } @Bean public ServletRegistrationBean dandelionServlet() { ServletRegistrationBean registrationBean = new ServletRegistrationBean(); registrationBean.setServlet(new DandelionServlet()); registrationBean.addUrlMappings("/dandelion/*"); return registrationBean; } @Bean public ServletContextTemplateResolver defaultTemplateResolver() { ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(); resolver.setTemplateMode("HTML5"); resolver.setPrefix("/WEB-INF/templates/"); resolver.setSuffix(".html"); resolver.setCharacterEncoding("UTF-8"); resolver.setCacheable(false); SpringTemplateEngine engine = new SpringTemplateEngine(); engine.setTemplateResolver(resolver); engine.addDialect(new DataTablesDialect()); return resolver; } } 

我已经制作了这个用于测试的HTML:

         
Telefone Nome

我认为蒲公英的servlet没有被调用。 不处理命名空间。 在此处输入图像描述

有几个错误。 其中大部分与我第一次使用蒲公英数据表时所做的相同。 🙂

我正在为下面的每个代码编写完整的简单示例,以供将来参考。 因此,请确保仅将缺少的项目添加到项目中

首先将这两个依赖项添加到您的maven。 (你已经拥有了第一个。所以添加后者。)

  com.github.dandelion datatables-thymeleaf 0.10.1   com.github.dandelion datatables-spring3 0.10.1  

然后添加这些配置。 你必须为方言创造豆类。 我想你错过了..

 @Configuration public class DandelionConfig { @Bean public DandelionDialect dandelionDialect() { return new DandelionDialect(); } @Bean public DataTablesDialect dataTablesDialect(){ return new DataTablesDialect(); } @Bean public Filter dandelionFilter() { return new DandelionFilter(); } @Bean public ServletRegistrationBean dandelionServletRegistrationBean() { return new ServletRegistrationBean(new DandelionServlet(), "/dandelion-assets/*"); } } 

视图可以是这样的

     
Telefone Nome

在这里,您使用服务器端处理。 这需要您的控制器在/clientes上有一个映射,它返回DatatablesResponse

 @Override @RequestMapping(value = "/clientes") @ResponseBody public DatatablesResponse data(HttpServletRequest request){ List myObjectList = ... //logic to fetch a list of objects DatatablesCriterias criterias = DatatablesCriterias.getFromRequest(request); DataSet dataSet = new DataSet<>(myObjectList, (long)myObjectList.size(), (long)myObjectList.size()); return DatatablesResponse.build(dataSet, criterias); } 

MyObject是您传递给蒲公英数据表的对象

 public class MyObject { private String telefone; private String nome; public String getTelefone() { return telefone; } public void setTelefone(String telefone) { this.telefone = telefone; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } }