1

原谅我再次打开这个话题,但我在任何地方都找不到这个解决方案,这让我发疯。

我来自一个类似 Django 的模板系统,我可以像这样扩展布局:

child.html

{% extends 'base.html' %}

{% block title %}My Page Title{% endblock %}

{% block content %}
<p>My Page Body</p>
{% endblock content %}

base.html

<html>
<head>
   <title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>

在 Tiles 中,我想做类似的事情,我可以在子模板中设置页面的标题。我尝试<tiles:putAttribute />在我的子模板中使用,但它们没有传递给父模板。

Tiles 不以这种自下而上的方式处理模板吗?我找到了一堆使用 spring 消息或 Tiles EL 的解决方案,但是这些都需要在我的Controller层中设置页面标题。在我看来,页面标题是视图层的一部分。

我正在使用动态切片定义来加载我的模板,因此为每个页面创建单独的切片定义是不可能的。

4

1 回答 1

0

在尝试使用父模板中的属性之前,必须包含子模板。在这种情况下,您只需将值放入 requestScope 而不必担心tiles属性范围。

否则通常在这种情况下,您需要将构图进一步分解。

例如,您可以插入另一个模板,而不是尝试直接写出父模板中的属性。这个新模板与您已经拥有的另一个子模板具有相似的组成,并负责写出属性,而不是尝试传递此属性。

于 2013-11-20T11:31:20.730 回答