Cómo renderizar el menú usando thymeleaf recursivamente

Me gustaría representar el menú HTML usando la lista ul / li. Tengo esta estructura de clase:

public class MenuItem {

    private String name;

    private MenuItem parent;

    private List<MenuItem> children;

    public MenuItem(String name,List<MenuItem> children) {
        this.name = name;
        this.children = children;
        for (MenuItem child : children) {
            child.parent = this;
        }
    }

    public MenuItem(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public MenuItem getParent() {
        return parent;
    }

    public List<MenuItem> getChildren() {
        return children;
    }
} 

Como puede ver, es la estructura de árbol típica, en la que un elemento raíz contiene referencia a sus elementos secundarios y ellos tienen referencia a los suyos, etc.

Ahora me encantaría representar una estructura como esta:

<ul>
    <li>Item 1
        <ul>
            <li>Item 1.1</li>
            <li>Item 1.2
                <ul>
                    <li>Item 1.2.1</li>
                    <li>Item 1.2.3</li>
                </ul>
            </li>
            <li>Item 1.3</li>
        </ul>
    </li>
    <li>Item 2</li>
</ul>

¿Cómo puedo hacer eso con tomillo?? Soy fácil si tengo que usarotras tecnologías como azulejos, diseño o cualquier otra cosa.

EDITAR: Intenté incluir / reemplazar parametrizado pero sin suerte. Los parámetros pasados se convierten en String y no se pueden usar para otro nivel de recursión. Verhttps://github.com/ultraq/thymeleaf-layout-dialect/issues/12

Muchas gracias,

Franco

Respuestas a la pregunta(2)

Su respuesta a la pregunta