Tiles shablonlarini Spring ishlatadigan veb-ilovalarda integratsiya qilishing mumkin - boshqa har qanday ko'rinish texnologiyasi kabi. Ushbu bo'limda buni qanday qilish mumkunligi haqida umumiy ma'lumot berilgan.
org.springframework.web.servlet.view.tiles3 paketida yoritilgan.
Qaramliklar
Tiles shablonlarini ishlatish imkoniyatiga ega bo'lish uchun, Tiles 3.0.1 yoki undan yuqori versiyasi va uning tranzitiv qaramliklarini loyihaga qo'shishing kerak.
Konfiguratsiya
Tiles shablonlarini ishlatish imkoniyatiga ega bo'lish uchun, uni ta'riflarni o'z ichiga olgan fayllar yordamida sozlashingiz kerak (Tiles ta'rifi va boshqa tushunchalar haqida batafsil ma'lumot olish uchun https://tiles.apache.org) saytiga qarang. Springda bu TilesConfigurer yordamida amalga oshiriladi. Quyidagi ApplicationContext konfiguratsiya misolida buni qanday qilish mumkunligi ko'rsatilgan:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/general.xml</value>
<value>/WEB-INF/defs/widgets.xml</value>
<value>/WEB-INF/defs/administrator.xml</value>
<value>/WEB-INF/defs/customer.xml</value>
<value>/WEB-INF/defs/templates.xml</value>
</list>
</property>
</bean>
Oldingi misolda beshta ta'rif fayli belgilangan. Barcha fayllar WEB-INF/defs katalogida joylashgan. WebApplicationContextni ishga tushirganda fayllar yuklanadi va definition fabrikasi ishga tushiriladi. Shundan so'ng, Tiles shablonlari definition fayllarida kiritilgan holda Spring veb-ilovalaringizda ko'rinishlar sifatida ishlatilishi mumkin. Ko'rinishlarni ishlatish imkoniyatiga ega bo'lish uchun, Springning boshqa ko'rinish texnologiyasida bo'lgani kabi, ViewResolver mavjudligini ta'minlashingiz kerak: odatda bu qulay TilesViewResolver bo'ladi.
Tiles shablonlarining ta'riflarini maxsus mintaqaviy sozlamalar uchun belgilash mumkin, quyidagi misolda ko'rsatilgandek underscore qo'shib va so'ng o'zining mintaqaviy sozlamalarini qo'shish orqali:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/tiles.xml</value>
<value>/WEB-INF/defs/tiles_fr_FR.xml</value>
</list>
</property>
</bean>
Oldingi konfiguratsiyalarda tiles_fr_FR.xml fr_FR mintaqaviy sozlamalariga ega so'rovlar uchun ishlatiladi, tiles.xml esa asosiy variant sifatida ishlatiladi.
UrlBasedViewResolver
UrlBasedViewResolver har bir ko'rinish uchun viewClassning bir nusxasini yaratadi. Quyidagi bean UrlBasedViewResolverni belgilaydi:
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>
SimpleSpringPreparerFactory va SpringBeanPreparerFactory
Qo'shimcha funksiyalarning biri sifatida Spring Tiles shablonlari uchun ikki maxsus PreparerFactory realizatsiyasini qo'llab-quvvatlaydi. Tiles shablon definition fayllarida ViewPreparerga linklar ishlatish haqida batafsil ma'lumot olish uchun Tiles dokumentatsiyasiga qarang.
SimpleSpringPreparerFactoryni qayta ko'rib chiqing va Spring konteynerida qayta chaqiruvlar va Springda sozlangan BeanPostProcessors yordamida berilgan tayyorlovchi klasslari asosida ViewPreparer nusxalarini avtomatik ravishda kashf qilish va ulash uchun belgilang. Agar Spring annotatsiya kontekstini sozlash faollashtirilgan bo'lsa, ViewPreparer klasslaridagi annotatsiyalar avtomatik ravishda kashf qilinadi va qo'llaniladi. E'tibor bering, bu standart PreparerFactory holatidagi kabi Tiles shablon definition fayllarida tayyorlovchi klasslar mavjudligini talab qiladi.
SpringBeanPreparerFactoryni belgilab, tayyorlovchi nomlar (klasslar o'rniga) bilan ishlash uchun DispatcherServlet ilova kontekstidan mos Spring beanlarini olish jarayonini amalga oshirish mumkin. Bu holda, barcha bean yaratish jarayoni Spring ilova konteksti tomonidan nazorat qilinadi, bu esa qaramliklarni inject qilish, beanlar ko'lami va hokazolarni aniq sozlash imkonini beradi. E'tibor bering, Tiles shablon definitionlarining har bir tayyorlovchi nomi uchun Spring bean definition topilishini belgilashingiz kerak. Quyidagi misolda TilesConfigurer bean uchun SpringBeanPreparerFactory xususiyatini qanday aniqlash mumkinligi ko'rsatilgan:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/general.xml</value>
<value>/WEB-INF/defs/widgets.xml</value>
<value>/WEB-INF/defs/administrator.xml</value>
<value>/WEB-INF/defs/customer.xml</value>
<value>/WEB-INF/defs/templates.xml</value>
</list>
</property>
<!-- tayyorlovchi nomlarini Spring bean definition nomi sifatida hal qilish -->
<property name="preparerFactoryClass"
value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory"/>
</bean>
GO TO FULL VERSION