Pengenalan Struts Cepat 2

1. Pengenalan

Apache Struts 2 adalah kerangka kerja berbasis MVC untuk mengembangkan aplikasi web Java perusahaan. Ia adalah penulisan semula rangka Struts yang asli. Ia mempunyai implementasi API sumber terbuka dan set fitur kaya.

Dalam tutorial ini, kita akan mendapat pengenalan pemula untuk komponen teras yang berbeza dari kerangka Struts2. Lebih-lebih lagi, kami akan menunjukkan cara menggunakannya.

2. Tinjauan Kerangka Struts 2

Beberapa ciri Struts 2 adalah:

  • POJO (Objek Java lama biasa) berdasarkan tindakan
  • sokongan pemalam untuk REST, AJAX, Hibernate, Spring, dll
  • konvensyen mengenai konfigurasi
  • sokongan pelbagai teknologi lapisan pandangan
  • kemudahan profil dan penyahpepijatan

2.1. Komponen Struts yang berbeza2

Struts2 adalah rangka kerja berasaskan MVC sehingga tiga komponen berikut akan hadir dalam semua aplikasi Struts2:

  1. Kelas tindakan - yang merupakan kelas POJO (POJO bermaksud ia bukan sebahagian daripada jenis hierarki dan boleh digunakan sebagai kelas yang berdiri sendiri); kami akan melaksanakan logik perniagaan kami di sini
  2. Pengawal - dalam Struts2, penapis HTTP digunakan sebagai pengawal; mereka pada dasarnya melakukan tugas seperti memintas dan mengesahkan permintaan / tindak balas
  3. Lihat - digunakan untuk membentangkan data yang diproses; biasanya fail JSP

3. Merancang Aplikasi Kami

Mari teruskan pengembangan aplikasi web kami. Ini adalah aplikasi di mana pengguna memilih jenama Kereta tertentu dan disambut oleh pesanan khusus.

3.1. Ketergantungan 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 ketergantungan terkini boleh didapati di sini.

3.2. Logik Perniagaan

Mari buat kelas tindakan CarAction yang mengembalikan mesej untuk nilai input tertentu. The CarAction mempunyai dua bidang - carName (digunakan untuk menyimpan input daripada pengguna) dan carMessage (digunakan untuk menyimpan mesej adat yang akan dipaparkan):

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 }

The CarAction kegunaan kelas CarMessageService yang menyediakan mesej disesuaikan untuk kereta jenama:

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 tambah JSP yang merupakan titik masuk dalam aplikasi kami. Ini adalah kandungan fail input.jsp :

Welcome to Baeldung Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

Tag < form > menentukan tindakan (dalam kes ini adalah HTTP URI yang harus dikirimkan permintaan GET).

3.4. Bahagian Pengawal

StrutsPrepareAndExecuteFilter adalah pengawal, yang akan memintas semua permintaan masuk. Kita perlu mendaftarkan penapis berikut di web.xml:

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

StrutsPrepareAndExecuteFilter akan menyaring setiap permintaan yang masuk kerana kami menentukan URL yang sepadan dengan wildcard / *

3.5. Mengkonfigurasi Aplikasi

Mari tambahkan anotasi berikut ke kelas aksi kami Car :

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

Mari fahami logik anotasi ini. The @ Namespace digunakan untuk pemisahan logik permintaan URI untuk kelas tindakan yang berbeza; kita perlu memasukkan nilai ini dalam permintaan kita.

Selanjutnya, @Action memberitahu titik akhir sebenar URI permintaan yang akan melanda kelas Tindakan kami . Kelas tindakan berunding dengan CarMessageService dan menginisialisasi nilai carMessage pemboleh ubah anggota yang lain . Setelah kaedah () jalankan mengembalikan nilai, "kejayaan" dalam kes kita, ia sepadan dengan nilai tersebut untuk memanggil result.jsp

Akhirnya, @Result mempunyai dua parameter. Pertama, nama, menentukan nilai yang akan dikembalikan oleh kelas Tindakan kami ; nilai ini pulang dari melaksanakan () kaedah Tindakan kelas. Ini adalah nama kaedah lalai yang akan dijalankan .

Bahagian kedua, lokasi, memberitahu file mana yang akan dirujuk setelah metode execute () mengembalikan nilai. Di sini, kita menentukan bahwa ketika mengeksekusi () mengembalikan String dengan nilai " berhasil ", kita harus meneruskan permintaan ke result.jsp .

Konfigurasi yang sama dapat dicapai dengan menyediakan fail konfigurasi XML:

   /result.jsp   

3.6. Pandangan

Ini adalah kandungan hasil.jsp yang akan digunakan untuk menyampaikan mesej kepada pengguna:

Hello Baeldung User

You are a

Terdapat dua perkara penting yang perlu diperhatikan di sini:

  • dalamkami mengimport perpustakaan struts-tags
  • dalamkami menggunakan perpustakaan struts-tags untuk mencetak nilai carMessage harta tanah

4. Menjalankan Aplikasi

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

  1. Setelah menggunakan aplikasi web, buka penyemak imbas dan akses URL berikut: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Pilih salah satu daripada dua pilihan dan hantarkan permintaan
  3. Anda akan diteruskan ke halaman result.jsp dengan mesej yang disesuaikan berdasarkan pilihan input yang dipilih

5. Kesimpulan

Dalam tutorial ini, kami membaca panduan langkah demi langkah, bagaimana membuat aplikasi web Struts2 pertama kami. Kami merangkumi pelbagai aspek yang berkaitan dengan MVC dalam domain Struts2 dan menunjukkan bagaimana menggabungkannya untuk pembangunan.

Seperti biasa, tutorial ini boleh didapati di Github sebagai projek Maven.