我有一个关于 Tapestry 页面和模板的问题。
用户发送请求以获取页面。我知道该请求来自移动设备或桌面设备。我想显示具有不同布局的请求页面。
例如:
如果请求来自移动设备,我想加载 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>
组件/布局.tml
<body t:type="layoutloader">...</body>
组件/MobileLayout.tml
<body t:type="layoutloader">...</body>
页面/索引.tml
<div t:type="layout">...</div>
页面/移动/Index.tml
<div t:type="mobileLayout">...</div>