2017-03-30 2 views
1

Ich benutze Spring Boot v1.5.2.RELEASE und Thymeleaf.Spring Boot Thymeleaf th: enthalten dynamische Vorlagen

Ich verwende <div th:include="praxis/header"></div>. Es funktioniert gut, aber jetzt habe ich eine besondere Anforderung, dass ich einen Weg in der Steuerung wie folgt enthalten sein sollen:

<div th:include="praxis/header"></div> 

@Controller 
@RequestMapping(path = "/praxis") 
public class UserController extends BaseController { 
@GetMapping(value = "/header") 
    public ModelAndView praxisHeader(HttpServletRequest request) { 
     //do sth 
     return new ModelAndView("some other templates", "user", user); 
    } 
} 

Es funktioniert nicht, weil th: sind nur Vorlagen aus der „Ressource“ Ordner enthalten kann .

Wie kann ich eine Vorlage vom Controller hinzufügen?

Antwort

1

th:include kann nur Fragmente aus anderen Vorlagen enthalten, es kann keine Daten vom Controller enthalten.

Wenn Sie Daten vom Controller an die Vorlage senden möchten, sollten Sie eine Karte erstellen, den Inhalt, den Sie senden möchten, als Wert eines Schlüssels in dieser Map festlegen und diese Karte unter Verwendung dieser API als senden:

public ModelAndView(String viewName, Map<String,?> model) 

Nun haben Sie es in der Vorlage und Sie können es in jeder gewünschten Weise verwenden.

+0

Entschuldigung Antwort spät, ich löste dieses Problem mit Ihrer Hilfe, vielen Dank :). Ich schreibe einen Controller 'code' (@Controller @RequestMapping (path ="/praxis ")) und gebe ein Model' code' zurück (ModelAndView modelAndView = new ModelAndView ("praxis/space", "user", user);) und Verwenden Sie auf dieser Seite 'code' (

), es funktioniert. – Martin

Verwandte Themen