我对挂毯页面和模板有疑问。
用户发送请求以获取页面。我知道请求来自移动设备或台式机。我想显示具有不同布局的请求页面。
例如:
如果请求来自移动设备,我想加载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/