Java Tapestry5动态布局

时间:2013-03-27 14:18:30

标签: java tapestry

我对Tapestry页面和模板有疑问。

用户发送获取页面的请求。我认识到请求来自移动或桌面。我想显示一个不同布局的请求页面。

例如:

如果请求来自移动设备,我想加载mobileLayout.tml和pages / mobile / index.tml,那个index.tml有t:type =“mobilelayout”。

如果它来自桌面设备我想加载layout.tml和pages / index.tml,那个index.tml有t:type =“layout”。

示例:

仅针对桌面设备显示页面页面/ index.tml。

仅针对移动设备显示页面/ 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>

1 个答案:

答案 0 :(得分:1)

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