我对挂毯页面和模板有疑问。

用户发送请求以获取页面。我知道请求来自移动设备或台式机。我想显示具有不同布局的请求页面。

例如:

如果请求来自移动设备,我想加载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>


pages / Index.tml

<div t:type="layout">...</div>


页面/移动设备/Index.tml

<div t:type="mobileLayout">...</div>

最佳答案

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

07-27 23:10