将表达式传递给百里香叶中的"include"属性



我发现了Thymelaf和springMVC的一些非常有趣的东西,以及它们是如何融合在一起的。现在我不相信这个问题没有解决方案:

因此,要根据文档在元素中包含片段,您应该使用以下表达式:

<div th:include="path/to/fragment/template :: fragmentName"><div/>

它是有效的,但这不是:

<div th:include="${model_nav_attribute}"><div/> //where model_nav_attribute = "path/to/fragment/template :: fragmentName"

这不起作用,我还没有进入调试细节,但我的概念告诉我,这是因为在${model_nav_attribute}评估期间没有评估运算符::,因为此代码段工作正常:

<div th:include="${model_nav_template_path} :: ${model_nav_fragment_name}"><div/> // model_nav_template_path = "where path/to/fragment/template and model_nav_template_path = "fragmentName"

但话说回来,绕过两个论点太乏味了。

所以如果

    <div th:include="${model_nav_attribute}"><div/> //where model_nav_attribute = "path/to/fragment/template :: fragmentName"

这是不可能的,也不正确的,你的建议是什么,以达到类似的效果?(也就是说,在单页应用程序中,有一个根视图,其中包含基于URI路径、参数等的可互换内容)我希望在不同的html文件中保持片段分离,这样它们就不会混乱,因此我需要更改路径。

您可以尝试以下操作:

<div th:include="__${model_nav_attribute}__"><div/>

__在正常表达式之前对表达式进行预处理。

更多信息:http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#preprocessing

相关内容

最新更新