For example, my controller method in Spring does this:
model.addAttribute("view_name", "foobar")
And I'm trying to do this in my Thymeleaf template:
<link th:href="@{/resources/libs/css/${view_name}.css}" rel="stylesheet" />
But the rendered result is this:
<link href="/app/resources/libs/css/${view_name}.css" rel="stylesheet" />
So it's not replacing the ${view_name}
like I'm expecting.
What am I doing wrong? In general, how do you nest expressions like that in Thymeleaf?
Since you are not starting the url rewrite with an expression (e.g.
${...}
,#{...}
,|...|
,__...__
,'quoted string'
, ...), Thymeleaf will consider the whole expression as aString
and not execute any of the inner expressions.The following example would work because it starts with an expression.
For your example you have the following possibilities
Literal substition (preferred method)
You can do literal substitions in a
String
with the pipeline syntax (|
).String concatenation