2013-03-27 80 views
1

我有一个关于Tapestry页面和模板的问题。Java Tapestry5动态布局

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

例如:

如果请求来自移动装置欲加载mobileLayout.tml和页/移动/ index.tml,即index.tml个人有T:类型= “mobilelayout”。

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

例子:

显示页页/ index.tml仅适用于桌面设备。

仅针对移动设备显示页面/ mobile/index.tml。

  • 请求的页面:/指数
  • 设备:电话
  • 我想加载mobileLayout和网页/移动/ index.tml

  • 请求的页面:/指数

  • 设备:桌面
  • 我想加载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> 
+0

这是一个有趣的线索:http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Supporting-multiple-devices- eg-browser-mobile-TV-td2434796.html – 2013-03-27 14:20:50

+0

感谢您的链接我会检查出来。 – Zis 2013-03-27 14:38:20

回答

1

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

+0

Tapestry 5.3增加了对蒙皮和主题的支持;伊戈尔提供了一个很好的描述。唯一的诡计是你必须提供一些垫片来向Tapestry解释主动和主动请求的主题和/或皮肤;该信息可能来自网站地址,或者被编码到URL中,或者可能是一个cookie ......它是非常开放的,因此您的应用程序需要提供一个垫片。 – 2013-06-03 17:45:53