2017-05-05 41 views
8

Mam ten fragment kodu, gdzie TDK jest wspólna zmienna Mam zdefiniowane w pliku SpringBoot application.properties nazwie server.contextPathThymeleaf odczytać właściwość Wewnątrz zastąpić

chciałbym wiedzieć, czy istnieje sposób, aby wymienić go na

<head th:replace="tdk/common/header :: common-header" /> 

coś

<head th:replace="@environment.get('server.contextPath')/common/header :: common-header" /> 

Używam

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    <version>1.5.3.RELEASE</version> 
</dependency> 

Próbowałem również:

<head th:replace="~{${@environment.getProperty('serverContextPath') + '/common/header'} :: common-header}" /> 

z tego wyniku:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "~{${@environment.getProperty('serverContextPath') + '/common/header'}", template might not exist or might not be accessible by any of the configured Template Resolvers (/tdk/registration/signup:6) 

Odpowiedz

2

Jeśli używasz thymeleaf 3, można tego dokonać za pomocą fragment expressions. Myślę, że powinno to wyglądać mniej więcej tak:

<head th:replace="~{${@environment.getProperty('myPropertyName') + '/common/header'} :: common-header}" /> 
+0

"~ {$ {@ environment.getProperty ('server.contextPath') + '/ common/nagłówek'}", szablon może nie istnieć lub może nie być dostępna przez którykolwiek ze skonfigurowanych Resolwerów szablonów (/ tdk/login/login: 6) \t pod –

+0

Cóż, czy zweryfikowaliście, że wygenerowany ciąg pasuje do tego, czego faktycznie chcecie? Nie mogę zweryfikować wartości @ environment.getProperty ("server.contextPath"). – Metroids

+0

wydaje się, że nie zastępuje zmiennej –