About Me

Hi, my name is Wim Deblauwe, a software developer specialized in Java, Spring, and JVM related tooling.

I wrote Taming Thymeleaf, a book to learn more about using Thymeleaf with Spring Boot. I also have a few open-source projects: one that makes it easy to do Spring Boot error handling, another for integration of Cypress with Testcontainers and a few others.

I blog regularly here about Spring Boot, Thymeleaf,Asciidoctor and other programming related subjects.

Stay up to date with the latest content via the RSS feed, follow me on Twitter, or subscribe to the mailing list.

Recent posts

Mar 21, 2022

Bootstrap Toggle clone with Tailwind CSS and Alpine

I migrated a project from Bootstrap 4 with the Sleek dashboard template to Tailwind CSS as Bootstrap 4 stopped having bugfixes on 2021-07-01, and there is no version for Bootstrap 5. Anyways, I like Tailwind CSS a lot more to work with :) One of the components that the project used is Bootstrap Toggle, which makes a simple checkbox look a lot better. As the project kicked out Bootstrap, I needed to build a replacement for it. This blog entry will explain how I did so step-by-step using Tailwind CSS and Alpine.js.


Feb 23, 2022

Spring Boot request parameters validation

I released a new version 2.1.0 of the Error Handling Spring Boot Starter last week. It supports nice error messages for validation of request parameters now. This blog post shows some more detail on how you can do validation of request parameters.


Nov 23, 2021

Taming Thymeleaf 2.0 release

My book Taming Thymeleaf has been updated for Java 17, Spring Boot 2.6 and Tailwind CSS 3.0. This update is free for all Leanpub readers.


Nov 23, 2021

Using Server-Sent Events with Thymeleaf and HTMX

This blog post uses htmx 1.6. In htmx 1.7, server-sent events support has been moved to an extension. The example code on GitHub has been updated to work with htmx 1.7. See commit b46b15b for the (small) changes that are needed. It is possible to push information from a Spring Boot backend to the UI using either Websockets or Server-Sent Events. This blog post will show how to use Thymeleaf with HTMX to push information from the server to the UI with Server-Sent Events.


Nov 18, 2021

Using Spring Boot ObjectMapper with hibernate-types

The hibernate-types library has extra types that are not found in Hibernate by default. One of the most interesting aspects of the library is the support for JSON types. Unfortunately, by default, the library will not pick up any Jackson configuration or custom serializers defined in your Spring Boot project. This blog post will show how to configure things so the JSON related configuration of Spring Boot is used.


Oct 4, 2021

TodoMVC with Thymeleaf and HTMX

In TodoMVC with Spring Boot and Thymeleaf, we implemented a TodoMVC clone using Spring MVC and Thymeleaf. In such a setup, each action triggers a page refresh. While this works just fine, you might want to give a more Single Page Application (SPA) spice to the experience and avoid page refreshes. This blog post will show how to use HTMX to accomplish this.


Sep 27, 2021

TodoMVC with Spring Boot and Thymeleaf (Part 3)

In Part 2, we implemented completion and deletion of todo items. In this last part of the 3-part series, we’ll finish the implementation of our TodoMVC clone.


Sep 23, 2021

TodoMVC with Spring Boot and Thymeleaf (Part 2)

In Part 1, we implemented TodoMVC using Spring Boot and Thymeleaf. The application already allows to add todo items and show them. We will continue in this part with completing items and deleting them.


Sep 20, 2021

TodoMVC with Spring Boot and Thymeleaf (Part 1)

The TodoMVC project has implementations of a simple todo list application for many different frontend frameworks. The goal is that a Single Page Application is implemented in a varity of technologies to be able to compare them. I wanted to stretch the concept a bit and create a Spring Boot backend with Thymeleaf server-side rendered HTML page just to see how that could work and how it would affect the user experience.


Sep 15, 2021

Thymeleaf iteration and fragments

Iteration in Thymeleaf templates is done using th:each. But combining it with fragments can yield some surprising results. This blog post shows an overview of what can happen and common pitfalls to watch out for.