Integrasi Ubin Apache dengan Spring MVC

1. Gambaran keseluruhan

Apache Tiles adalah kerangka templat sumber terbuka percuma yang dibina berdasarkan corak reka bentuk Komposit.

Corak reka bentuk Komposit adalah jenis corak struktur yang menyusun objek menjadi struktur pokok untuk mewakili hierarki seluruh bahagian dan corak ini memperlakukan objek dan komposisi objek secara seragam. Dengan kata lain, di Tiles, halaman dibina dengan menyusun komposisi sub view yang dipanggil Tiles.

Kelebihan kerangka ini berbanding kerangka kerja lain termasuk:

  • kebolehgunaan semula
  • kemudahan dalam konfigurasi
  • overhead prestasi rendah

Dalam artikel ini, kami akan memusatkan perhatian untuk mengintegrasikan Apache Tiles dengan Spring MVC .

2. Konfigurasi Ketergantungan

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

 org.apache.tiles tiles-jsp 3.0.8 

3. Fail Susun atur Jubin

Sekarang kita perlu menentukan definisi templat dan secara khusus pada setiap halaman kita akan menimpa definisi templat untuk halaman tertentu:

4. Konfigurasi Aplikasi dan Kelas Lain

Sebagai sebahagian daripada konfigurasi, kami akan membuat tiga kelas java khusus yang disebut ApplicationInitializer , ApplicationController dan ApplicationConfiguration :

  • ApplicationInitializer memulakan dan memeriksa konfigurasi yang diperlukan yang ditentukan dalam kelas ApplicationConfiguration
  • Kelas ApplicationConfiguration mengandungi konfigurasi untuk mengintegrasikan Spring MVC dengan kerangka Apache Tiles
  • Kelas ApplicationController berfungsi selaras dengan fail tiles.xml dan mengalihkan ke halaman yang diperlukan berdasarkan permintaan yang masuk

Mari kita lihat setiap 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("/"); } }

Terdapat dua kelas penting yang memainkan peranan penting dalam mengkonfigurasi jubin dalam aplikasi Spring MVC. Mereka adalah TilesConfigurer dan TilesViewResolver :

  • TilesConfigurer membantu menghubungkan kerangka Tiles dengan rangka Spring dengan memberikan jalan ke fail konfigurasi ubin
  • TilesViewResolver adalah salah satu kelas penyesuai yang disediakan oleh Spring API untuk menyelesaikan paparan jubin

Akhirnya, dalam 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. Fail Templat Jubin

Hingga kini kami telah menyelesaikan konfigurasi kerangka Apache Tiles dan definisi templat dan jubin tertentu yang digunakan dalam keseluruhan aplikasi.

Dalam langkah ini, kita perlu membuat fail templat tertentu yang telah ditentukan dalam tiles.xml .

Cari coretan susun atur yang dapat dijadikan landasan untuk membina halaman tertentu:


    

6. Kesimpulannya

Ini menyimpulkan penyatuan Spring MVC dengan Apache Tiles.

Anda boleh mendapatkan pelaksanaan sepenuhnya dalam projek github berikut.