1

我有一个关于 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>
4

1 回答 1

1

您可能会发现 Igor 的博客文章很有趣http://blog.tapestry5.de/index.php/2011/06/24/template-skinning/

于 2013-03-27T23:32:35.523 回答