2013-03-27 3 views
1

У меня есть вопрос о страницах и шаблонах гобеленов.Java Tapestry5 динамический макет

Пользователь отправляет запрос, чтобы получить страницу. Я признаю, что запрос поступает с мобильного или настольного компьютера. Я хочу показать запрошенную страницу с разным расположением.

Например:

Если запрос приходит от мобильного устройства, я хочу, чтобы загрузить mobileLayout.tml и страницы/мобильные/index.tml, что index.tml Have т: тип = "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 –

+0

Спасибо за ссылку. Я проверю это. – Zis

ответ

1

Вы можете найти в блоге Игоря интересный http://blog.tapestry5.de/index.php/2011/06/24/template-skinning/

+0

Tapestry 5.3 добавлена ​​поддержка скининга и тематики; Игорь дал отличное описание.Единственная хитрость заключается в том, что вам нужно поставить пару прокладок, чтобы объяснить Гобелену, что тема и/или скин для активного запроса; эта информация может поступать с адреса сайта или быть закодирована в URL-адрес, или, возможно, в файле cookie ... он очень открытый, поэтому необходимо, чтобы ваше приложение предоставило прокладку. –