タペストリーのページとテンプレートについて質問があります。
ユーザーがページを取得するためにリクエストを送信します。リクエストがモバイルまたはデスクトップから送信されたことを認識しています。リクエストされたページを別のレイアウトで表示したい。
例えば:
リクエストがモバイル デバイスからのものである場合、mobileLayout.tml と pages/mobile/index.tml をロードしたいのですが、その index.tml には t:type="mobilelayout" があります。
デスクトップ デバイスからの場合は、layout.tml と pages/index.tml を読み込みたいのですが、その index.tml には t:type="layout" があります。
例:
デスクトップ デバイスに対してのみページ pages/index.tml を表示します。
ページ pages/mobile/index.tml をモバイル デバイスのみに表示します。
- 要求されたページ: /index
- デバイス: 電話
mobileLayout と pages/mobile/index.tml を読み込みたい
要求されたページ: /index
- デバイス: デスクトップ
- layout.tml と pages/index.tml を読み込みたい
基本的にモバイルデバイスの場合、ページ/モバイルからコンテンツを取得したいのですが、それ以外の場合はページ/から取得します。
Tapestry5(5.3.6)でそのようなことは可能ですか?
私は以下のようなことを試みましたが、成功しませんでした:
LayoutLoader.tml - リクエストの送信元を認識しています。
<t:delegate to="layout" />
<t:block t:id="mobileLayout">
<t:mobileLayout />
</t:block>
<t:block t:id="desktopLayout">
<t:layout />
</t:block>
コンポーネント/Layout.tml
<body t:type="layoutloader">...</body>
コンポーネント/MobileLayout.tml
<body t:type="layoutloader">...</body>
ページ/Index.tml
<div t:type="layout">...</div>
ページ/モバイル/Index.tml
<div t:type="mobileLayout">...</div>