Integrasi Apache Tiles dengan Spring MVC

1. Ikhtisar

Apache Tiles adalah kerangka kerja template sumber terbuka gratis yang dibuat murni berdasarkan pola desain Komposit.

Pola desain komposit adalah jenis pola struktur yang menyusun objek menjadi struktur pohon untuk merepresentasikan seluruh bagian hierarki dan pola ini memperlakukan objek individu dan komposisi objek secara seragam. Dengan kata lain, di Ubin, halaman dibuat dengan menyusun komposisi sub tampilan yang disebut Ubin.

Keunggulan kerangka kerja ini dibandingkan kerangka lain meliputi:

  • kegunaan kembali
  • kemudahan dalam konfigurasi
  • overhead kinerja rendah

Pada artikel ini, kami akan fokus pada integrasi Apache Tiles dengan Spring MVC .

2. Konfigurasi Ketergantungan

Langkah pertama di sini adalah menambahkan dependensi yang diperlukan di pom.xml :

 org.apache.tiles tiles-jsp 3.0.8 

3. File Tata Letak Ubin

Sekarang kita perlu mendefinisikan definisi template dan secara khusus untuk setiap halaman kita akan menimpa definisi template untuk halaman spesifik tersebut:

4. Konfigurasi Aplikasi dan Kelas Lain

Sebagai bagian dari konfigurasi kita akan membuat tiga kelas java khusus yang disebut ApplicationInitializer , ApplicationController dan ApplicationConfiguration :

  • ApplicationInitializer menginisialisasi dan memeriksa konfigurasi yang diperlukan yang ditentukan dalam kelas ApplicationConfiguration
  • Kelas ApplicationConfiguration berisi konfigurasi untuk mengintegrasikan Spring MVC dengan framework Apache Tiles
  • Kelas ApplicationController bekerja secara sinkron dengan file tiles.xml dan mengalihkan ke halaman yang diperlukan berdasarkan permintaan yang masuk

Mari kita lihat masing-masing kelas beraksi:

@Controller @RequestMapping("/") public class TilesController { @RequestMapping( value = { "/"}, method = RequestMethod.GET) public String homePage(ModelMap model) { return "home"; } @RequestMapping( value = { "/apachetiles"}, method = RequestMethod.GET) public String productsPage(ModelMap model) { return "apachetiles"; } @RequestMapping( value = { "/springmvc"}, method = RequestMethod.GET) public String contactUsPage(ModelMap model) { return "springmvc"; } }
public class WebInitializer implements WebApplicationInitializer { public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(TilesApplicationConfiguration.class); container.addListener(new ContextLoaderListener(ctx)); ServletRegistration.Dynamic servlet = container.addServlet( "dispatcher", new DispatcherServlet(ctx)); servlet.setLoadOnStartup(1); servlet.addMapping("/"); } }

Ada dua kelas penting yang memainkan peran kunci dalam mengonfigurasi ubin di aplikasi Spring MVC. Mereka adalah TilesConfigurer dan TilesViewResolver :

  • TilesConfigurer membantu menghubungkan framework Tiles dengan framework Spring dengan menyediakan jalur ke file konfigurasi ubin
  • TilesViewResolver adalah salah satu kelas adaptor yang disediakan oleh Spring API untuk menyelesaikan tampilan ubin

Akhirnya, di ApplicationConfiguration kelas, kami menggunakan TilesConfigurer dan TilesViewResolver kelas untuk mencapai integrasi:

@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.baeldung.spring.controller.tiles") public class TilesApplicationConfiguration implements WebMvcConfigurer { @Bean public TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions( new String[] { "/WEB-INF/views/**/tiles.xml" }); tilesConfigurer.setCheckRefresh(true); return tilesConfigurer; } @Override public void configureViewResolvers(ViewResolverRegistry registry) { TilesViewResolver viewResolver = new TilesViewResolver(); registry.viewResolver(viewResolver); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**") .addResourceLocations("/static/"); } }

5. File Template Ubin

Sampai saat ini kami telah menyelesaikan konfigurasi framework Apache Tiles dan definisi template serta tile spesifik yang digunakan di seluruh aplikasi.

Pada langkah ini, kita perlu membuat file template spesifik yang telah ditentukan di tiles.xml .

Temukan cuplikan tata letak yang dapat digunakan sebagai dasar untuk membangun halaman tertentu:


    

6. Kesimpulan

Ini menyimpulkan integrasi Spring MVC dengan Apache Tiles.

Anda dapat menemukan implementasi lengkapnya di proyek github berikut.