Di dalam panteon teknologi web Java, ada beberapa nama yang bersinar sebagai legenda. Namun, ada beberapa yang lebih dari sekadar legenda individu; mereka adalah pasangan legendaris. Seperti Batman dan Robin atau Han Solo dan Chewbacca, kekuatan mereka menjadi berlipat ganda saat mereka bekerja bersama. Di era awal pengembangan web Java, salah satu duo paling ikonik dan tak terpisahkan adalah Apache Struts dan Apache Tiles.
Bagi developer yang pernah bekerja dengan aplikasi Java dari era pertengahan 2000-an, hampir mustahil untuk membicarakan yang satu tanpa menyebut yang lain. Struts menangani alur aplikasi, sementara Tiles mengurus keindahan dan konsistensi tampilannya. Mereka adalah pasangan yang lahir dari kebutuhan yang sama dan bersama-sama, mereka telah mendefinisikan sebuah era.
Ini adalah kisah tentang Apache Tiles, tetapi kisah ini tidak akan lengkap tanpa menceritakan pasangannya yang abadi, sang framework legendaris, Struts.
baca Juga:Kasus Bank BJB, Tenaga Ahli Anggota BPK RI Mangkir dari Panggilan KPK
Dunia yang Membutuhkan Pahlawan: Kekacauan Web Java Awal
Untuk memahami mengapa duo ini begitu penting, kita harus kembali ke masa-masa “kacau balau” di awal pengembangan web Java. Saat itu, para developer berjuang melawan dua musuh besar:
- Kode Spageti: Logika bisnis, akses database, dan kode HTML dicampur aduk di dalam satu file JSP, menciptakan aplikasi yang mustahil untuk dipelihara.
- Duplikasi Kode Tampilan: Header, footer, dan menu navigasi harus disalin-tempel (copy-paste) secara manual ke setiap halaman, membuat perubahan kecil menjadi pekerjaan raksasa.
Komunitas Java membutuhkan dua pahlawan: satu untuk membereskan kekacauan logika, dan satu lagi untuk membereskan kekacauan tampilan.
Struts Tiba Membawa ‘Cetak Biru’ MVC
Pahlawan pertama yang datang adalah Apache Struts 1. Ia datang membawa sebuah “cetak biru” yang revolusioner bernama pola arsitektur Model-View-Controller (MVC). Struts bertindak sebagai “otak” atau “arsitek” dari aplikasi.
Peran utamanya adalah sebagai Controller. Melalui sebuah servlet pusat dan file konfigurasi struts-config.xml
, Struts mengambil alih tugas-tugas penting:
- Menerima semua permintaan dari pengguna.
- Memutuskan kode Java (kelas
Action
) mana yang harus dijalankan untuk menangani permintaan tersebut. - Mempersiapkan data (Model) yang dibutuhkan.
- Menentukan halaman mana (View) yang harus ditampilkan sebagai respons.
Struts berhasil memecahkan masalah pertama: ia secara paksa memisahkan logika dari tampilan, membunuh monster kode spageti. Namun, ia tidak sepenuhnya memecahkan masalah kedua. Developer masih bisa saja menduplikasi kode header dan footer di dalam file-file View JSP mereka. Struts membutuhkan seorang mitra, seorang spesialis dalam hal tata letak.
Tiles Datang sebagai Sang ‘Dekorator Interior’
Di sinilah Apache Tiles masuk ke dalam cerita. Jika Struts adalah arsitek yang merancang denah dan alur rumah, maka Tiles adalah sang dekorator interior yang ahli dalam hal estetika dan konsistensi.
Tiles lahir dari dalam proyek Struts itu sendiri, dirancang khusus untuk menjadi pasangannya. Ia memecahkan masalah duplikasi kode tampilan dengan memperkenalkan konsep komposisi tata letak.
Dengan Tiles, Anda tidak lagi membangun setiap “ruangan” (halaman) dari nol. Sebaliknya:
- Anda membuat sebuah templat dasar yang mendefinisikan elemen-elemen umum yang akan ada di setiap ruangan, seperti “lantai” (footer), “langit-langit” (header), dan “dinding” (sidebar). Templat ini memiliki slot-slot kosong.
- Anda membuat potongan-potongan konten individual sebagai “ubin” (tiles).
- Anda menggunakan “buku panduan dekorasi” (
tiles.xml
) untuk memberitahu sistem bagaimana cara mengisi slot-slot kosong di setiap ruangan dengan ubin yang tepat.
Peran Tiles sangatlah spesifik: ia tidak peduli dengan logika bisnis atau alur aplikasi. Tugasnya hanyalah memastikan bahwa setiap halaman yang disajikan kepada pengguna memiliki tampilan yang konsisten, indah, dan tersusun dengan rapi.
Sinergi Sempurna: Bagaimana Mereka Bekerja Bersama
Kejeniusan dari pasangan ini terletak pada sinergi mereka yang mulus. Mereka dirancang untuk bekerja bersama. Alur kerja sebuah permintaan (request) di dalam aplikasi Struts+Tiles biasanya terlihat seperti ini:
- Pengguna mengklik sebuah tautan (misalnya,
/lihatProduk.do
). - Struts (sang Arsitek) mengambil alih. Ia melihat ke dalam “cetak biru”-nya (
struts-config.xml
). - Struts menemukan pemetaan untuk
/lihatProduk.do
dan menjalankan kelasLihatProdukAction.java
. Kelas ini pergi ke database dan mengambil detail produk. - Setelah selesai,
LihatProdukAction
mengembalikan sebuah hasil, misalnya “sukses”. - Di dalam
struts-config.xml
, hasil “sukses” ini tidak dipetakan langsung ke sebuah file JSP. Sebaliknya, ia dipetakan ke sebuah definisi Tiles. Misalnya,<forward name="sukses" path="definisi.produk.detail" />
. - Struts kemudian berkata, “Tugas logikaku selesai. Sekarang giliranmu, Tiles!”
- Tiles (sang Dekorator) mengambil alih. Ia melihat ke dalam “buku panduan dekorasi”-nya (
tiles.xml
) dan mencari definisi bernamadefinisi.produk.detail
. - Tiles melihat bahwa definisi ini menggunakan templat dasar, dan mengisi slot “body” dengan file
detail_produk.jsp
. - Tiles kemudian merakit semua potongan ubin—header, footer, dan body detail produk—menjadi satu halaman HTML yang utuh dan menyajikannya kepada pengguna.
Struts mengelola “apa” dan “mengapa” (logika dan alur), sementara Tiles mengelola “bagaimana tampilannya” (presentasi dan tata letak). Mereka adalah sebuah tim impian.
Warisan Duo Legendaris
Seperti halnya banyak pasangan legendaris, era mereka pun harus berakhir. Dunia teknologi bergerak maju. Struts 1, dengan konfigurasi XML-nya yang kaku, digantikan oleh framework-framework berbasis anotasi seperti Spring MVC. Dan Tiles, dengan rendering server-side-nya, digantikan oleh template engine yang lebih canggih seperti Thymeleaf dan, yang lebih signifikan lagi, oleh framework komponen client-side seperti React dan Vue.
Di tahun 2025, memulai proyek baru dengan duo Struts 1 dan Tiles adalah sesuatu yang tidak terpikirkan. Keduanya adalah teknologi warisan yang telah resmi pensiun.
Namun, warisan mereka abadi. Mereka adalah duo yang mengajarkan kepada dunia Java dua pelajaran fundamental yang masih kita pegang teguh hingga hari ini:
- Struktur MVC itu penting (pelajaran dari Struts).
- Komposisi UI itu penting (pelajaran dari Tiles).
Setiap kali kita membangun sebuah aplikasi Spring Boot yang terstruktur atau merakit sebuah antarmuka dengan komponen-komponen React, kita sebenarnya sedang berdiri di atas bahu dari duo legendaris ini. Kisah Apache Struts dan Apache Tiles adalah sebuah babak yang tak terpisahkan dalam sejarah pengembangan web, sebuah pengingat akan kekuatan sinergi dalam memecahkan masalah yang kompleks.
penulis:dafa Aditya.f