2013-10-22 62 views
1

請原諒我再次打開此主題,但我無法在任何地方找到此解決方案,並且這讓我發瘋。瓷磚 - 訪問父級佈局中的子屬性

我來自一個Django狀的模板系統,其中,I可以擴展布局像這樣:

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 />,但它們不會傳遞給父模板。

瓷磚不能處理這種從下到上的時尚模板嗎?我發現了一些使用spring消息或Tiles EL的解決方案,但是這些都需要在我的控制器層中設置頁面標題。在我看來,頁面標題是查看圖層的一部分。

我正在使用動態圖塊定義來加載我的模板,因此爲每個頁面創建單獨的圖塊定義是不成問題的。

+0

我很尋找相同類型的解決方案。你是否能夠解決這個問題,或者你最終解決了這個問題? –

+0

我無法弄清楚使用瓷磚的解決方案。我正在考慮單獨使用Thymeleaf(以及thymeleaf-layout-dialect)作爲模板引擎,因爲它允許這樣做以及許多其他動態功能。 – Mike

回答

0

在嘗試使用父模板中的屬性之前,必須包含子模板。在這種情況下,您可以將值放入requestScope中,而不必擔心tiles屬性的作用域。

否則通常在這種情況下,您需要將構圖分開多一點。

例如,您可以插入另一個模板,而不是試圖直接寫出父模板中的屬性。這個新模板與您已有的其他子模板具有相似的組成,並且負責編寫該屬性,而不是嘗試傳遞此屬性。