mardi 24 février 2015

Spring Boot + Thymeleaf + Dandelion configuration not working

I'm using Spring Boot with Thymeleaf and now I want to add Dandelion datatables, but it doesn't working.


Here is my maven dependencies:



<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<!-- Dandelion -->
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-thymeleaf</artifactId>
<version>0.10.1</version>
</dependency>


I'm following this guide http://ift.tt/1zDCVlT and configured the following beans:



@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;
}

}


I have made this HTML for testing:





<!doctype html>
<html
xmlns:th="http://ift.tt/wfNV60"
xmlns:ddl="http://ift.tt/1zDCXKF">
<head>
<link type="text/css" href="/stylesheets/dataTables.css" media="screen" rel="stylesheet" />
<script src="/javascripts/vendor/jquery191.js" type="text/javascript"></script>
<script src="/javascripts/vendor/dataTables.js" type="text/javascript"></script>
</head>
<body>
<br/>
<table id="myTableId" ddl:table="true" ddl:url="@{/clientes}">
<thead>
<tr>
<th ddl:property="telefone">Telefone</th>
<th ddl:property="nome">Nome</th>
</tr>
</thead>
</table>
</body>
</html>



I think Dandelion's servlet is not called. The namespace is not processed. enter image description here


Aucun commentaire:

Enregistrer un commentaire