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 を使用したソリューションを多数見つけましたが、これらはすべてコントローラーレイヤーでページ タイトルを設定する必要があります。私の意見では、ページ タイトルはビューレイヤーの一部です。

テンプレートを読み込むために動的なタイル定義を使用しているため、ページごとに個別のタイル定義を作成することは問題外です。

4

1 に答える 1

0

親テンプレートで属性を使用する前に、子テンプレートを含める必要があります。この場合、値を requestScope に入れるだけで、タイル属性のスコープを気にする必要はありません。

それ以外の場合、通常、この状況では、構成をもう少し分割する必要があります。

たとえば、親テンプレートに属性を直接書き出そうとする代わりに、別のテンプレートを挿入することができます。この新しいテンプレートは、既に持っている他の子テンプレートと同様の構成を持ち、この属性を渡そうとするのではなく、属性を書き出す責任を負います。

于 2013-11-20T11:31:20.730 に答える