Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tapestry5动态布局_Java_Tapestry - Fatal编程技术网

Java Tapestry5动态布局

Java Tapestry5动态布局,java,tapestry,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.tm

我有一个关于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
基本上,对于移动设备,我希望从pages/mobile获取内容,否则从pages/获取内容

在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>
<body t:type="layoutloader">...</body>
。。。
组件/MobileLayout.tml

<body t:type="layoutloader">...</body>
<body t:type="layoutloader">...</body>
。。。
pages/Index.tml

<div t:type="layout">...</div>
<div t:type="mobileLayout">...</div>
。。。
pages/mobile/Index.tml

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

你可能会发现Igor的博客文章很有趣

你可能会发现Igor的博客文章很有趣

这里有一个有趣的帖子:感谢链接,我来看看。这里有一个有趣的帖子:感谢链接,我来看看。Tapestry 5.3增加了对蒙皮和主题化的支持;Igor对此做了很好的描述。唯一的诀窍是你必须提供几个垫片来向Tapestry解释活动请求的主题和/或皮肤是什么;这些信息可以来自网站地址,或者被编码到URL中,或者可能是一个cookie。。。Tapestry 5.3增加了对蒙皮和主题化的支持;Igor对此做了很好的描述。唯一的诀窍是你必须提供几个垫片来向Tapestry解释活动请求的主题和/或皮肤是什么;这些信息可以来自网站地址,或者被编码到URL中,或者可能是一个cookie。。。它是非常开放的,因此您的应用程序需要提供一个垫片。