Intro Cepat Struts 2

1. Perkenalan

Apache Struts 2 adalah kerangka kerja berbasis MVC untuk mengembangkan aplikasi web Java perusahaan. Ini adalah penulisan ulang lengkap dari kerangka Struts asli. Ini memiliki implementasi API open source dan set fitur yang kaya.

Dalam tutorial ini, kita akan memiliki pengenalan pemula tentang berbagai komponen inti kerangka Struts2. Selain itu, kami akan menunjukkan cara menggunakannya.

2. Tinjauan Kerangka Struts 2

Beberapa fitur Struts 2 adalah:

  • Tindakan berbasis POJO (Objek Java lama biasa)
  • dukungan plugin untuk REST, AJAX, Hibernate, Spring, dll
  • konvensi atas konfigurasi
  • dukungan berbagai teknologi lapisan tampilan
  • kemudahan pembuatan profil dan debugging

2.1. Komponen Struts yang berbeda2

Struts2 adalah kerangka kerja berbasis MVC sehingga tiga komponen berikut akan hadir di semua aplikasi Struts2:

  1. Kelas aksi - yang merupakan kelas POJO (POJO berarti itu bukan bagian dari hierarki tipe apa pun dan dapat digunakan sebagai kelas mandiri); kami akan menerapkan logika bisnis kami di sini
  2. Pengontrol - di Struts2, filter HTTP digunakan sebagai pengontrol; mereka pada dasarnya melakukan tugas-tugas seperti mencegat dan memvalidasi permintaan / tanggapan
  3. Lihat - digunakan untuk menyajikan data yang diproses; biasanya berupa file JSP

3. Merancang Aplikasi Kami

Mari lanjutkan dengan pengembangan aplikasi web kita. Ini adalah aplikasi di mana pengguna memilih merek Mobil tertentu dan disambut oleh pesan yang disesuaikan.

3.1. Dependensi Maven

Mari tambahkan entri berikut ke pom.xml :

 org.apache.struts struts2-core 2.5.10   org.apache.struts struts2-junit-plugin 2.5.10   org.apache.struts struts2-convention-plugin 2.5.10 

Versi terbaru dari dependensi dapat ditemukan di sini.

3.2. Logika bisnis

Mari buat kelas aksi CarAction yang mengembalikan pesan untuk nilai input tertentu. The CarAction memiliki dua bidang - carName (digunakan untuk menyimpan input dari user) dan carMessage (digunakan untuk menyimpan pesan khusus yang akan ditampilkan):

public class CarAction { private String carName; private String carMessage; private CarMessageService carMessageService = new CarMessageService(); public String execute() { this.setCarMessage(this.carMessageService.getMessage(carName)); return "success"; } // getters and setters }

Kelas CarAction menggunakan CarMessageService yang menyediakan pesan khusus untuk merek Mobil :

public class CarMessageService { public String getMessage(String carName) { if (carName.equalsIgnoreCase("ferrari")){ return "Ferrari Fan!"; } else if (carName.equalsIgnoreCase("bmw")){ return "BMW Fan!"; } else { return "please choose ferrari Or bmw"; } } }

3.3. Menerima Input Pengguna

Mari tambahkan JSP yang merupakan titik masuk dalam aplikasi kita. Ini adalah isi dari file input.jsp :

Welcome to Baeldung Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

Tag < form > menentukan tindakan (dalam kasus kami ini adalah HTTP URI yang permintaan GET harus dikirim).

3.4. Bagian Pengendali

StrutsPrepareAndExecuteFilter adalah pengontrol, yang akan mencegat semua permintaan yang masuk. Kita perlu mendaftarkan filter berikut di web.xml:

 struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter   struts2 /* 

StrutsPrepareAndExecuteFilter akan memfilter setiap permintaan yang masuk saat kami menentukan karakter pengganti yang cocok dengan URL / *

3.5. Konfigurasi Aplikasi

Mari tambahkan anotasi berikut ke Mobil kelas tindakan kita :

@Namespace("/tutorial") @Action("/car") @Result(name = "success", location = "/result.jsp")

Mari kita pahami logika dari anotasi ini. The @ Namespace digunakan untuk pemisahan logis dari permintaan URI untuk kelas tindakan yang berbeda; kita perlu memasukkan nilai ini dalam permintaan kita.

Lebih jauh, @Action memberi tahu titik akhir sebenarnya dari URI permintaan yang akan mencapai kelas Action kita . Kelas tindakan berkonsultasi dengan CarMessageService dan menginisialisasi nilai variabel anggota lain carMessage . Setelah metode execute () mengembalikan nilai, "berhasil" dalam kasus kita, ia cocok dengan nilai tersebut untuk memanggil result.jsp

Terakhir, @Result memiliki dua parameter. Pertama, name, menentukan nilai yang akan dikembalikan kelas Action kita ; nilai ini kembali dari execute () metode Aksi kelas. Ini adalah nama metode default yang akan dijalankan .

Bagian kedua, lokasi, memberi tahu file mana yang akan dirujuk setelah metode execute () mengembalikan nilai. Di sini, kami menetapkan bahwa ketika mengeksekusi () mengembalikan String dengan nilai " sukses ", kami harus meneruskan permintaan ke result.jsp .

Konfigurasi yang sama dapat dicapai dengan menyediakan file konfigurasi XML:

   /result.jsp   

3.6. Pandangan

Ini adalah konten result.jsp yang akan digunakan untuk menyajikan pesan kepada pengguna:

Hello Baeldung User

You are a

Ada dua hal penting yang perlu diperhatikan di sini:

  • dikami mengimpor pustaka tag-struts
  • dikami menggunakan pustaka struts-tags untuk mencetak nilai properti carMessage

4. Menjalankan Aplikasi

Aplikasi web ini dapat dijalankan di wadah web apa pun, misalnya di Apache Tomcat. Ini adalah langkah-langkah yang diperlukan untuk mencapainya:

  1. Setelah menerapkan aplikasi web, buka browser dan akses URL berikut: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Pilih salah satu dari dua opsi dan kirimkan permintaan
  3. Anda akan diteruskan ke halaman result.jsp dengan pesan yang disesuaikan berdasarkan opsi masukan yang dipilih

5. Kesimpulan

Dalam tutorial ini, kami berjalan melalui panduan langkah demi langkah, cara membuat aplikasi web Struts2 pertama kami. Kami membahas berbagai aspek terkait MVC di domain Struts2 dan menunjukkan cara menggabungkannya untuk pengembangan.

Seperti biasa, tutorial ini dapat ditemukan di Github sebagai proyek Maven.