Tiles - 在父布局中访问子属性

时间:2013-10-22 14:37:37

标签: java tiles tiles2 apache-tiles

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

我来自类似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 层中设置页面标题。在我看来,页面标题是查看图层的一部分。

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

1 个答案:

答案 0 :(得分:0)

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

否则通常在这种情况下你需要更多地打破构图。

例如,

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