原谅我再次打开这个话题,但我无法在任何地方找到这个解决方案,这让我发疯了。
我来自类似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 层中设置页面标题。在我看来,页面标题是查看图层的一部分。
我正在使用动态切片定义来加载我的模板,因此为每个页面创建单独的切片定义是不可能的。
答案 0 :(得分:0)
在尝试在父模板中使用该属性之前,必须包含子模板。在这种情况下,您可以将值放入requestScope中,而不必担心tile属性范围。
否则通常在这种情况下你需要更多地打破构图。
例如,而不是尝试直接写出父模板中的属性,您可以插入另一个模板。这个新模板与您已有的其他子模板具有相似的组成,并负责写出属性,而不是尝试传递此属性。