Struts 2 - Jenis Hasil & Hasil
Seperti disebutkan sebelumnya, file <results> tag memainkan peran a viewdalam kerangka MVC Struts2. Tindakan tersebut bertanggung jawab untuk menjalankan logika bisnis. Langkah selanjutnya setelah menjalankan logika bisnis adalah menampilkan tampilan menggunakan<results> menandai.
Seringkali ada beberapa aturan navigasi yang dilampirkan dengan hasil. Misalnya, jika metode tindakan adalah untuk mengautentikasi pengguna, ada tiga kemungkinan hasil.
- Login Berhasil
- Gagal Masuk - Nama pengguna atau kata sandi salah
- Akun terkunci
Dalam skenario ini, metode tindakan akan dikonfigurasi dengan tiga kemungkinan string hasil dan tiga tampilan berbeda untuk memberikan hasil. Kami telah melihat ini di contoh sebelumnya.
Tapi, Struts2 tidak mengikat Anda dengan menggunakan JSP sebagai teknologi tampilan. Lagipula, tujuan keseluruhan dari paradigma MVC adalah untuk menjaga agar layer tetap terpisah dan sangat dapat dikonfigurasi. Misalnya, untuk klien Web2.0, Anda mungkin ingin mengembalikan XML atau JSON sebagai output. Dalam kasus ini, Anda dapat membuat tipe hasil baru untuk XML atau JSON dan mencapainya.
Struts hadir dengan jumlah yang sudah ditentukan sebelumnya result types dan apa pun yang telah kita lihat, itulah jenis hasil default dispatcher, yang digunakan untuk dikirim ke halaman JSP. Struts memungkinkan Anda menggunakan bahasa markup lain untuk teknologi tampilan untuk menyajikan hasil dan pilihan populer termasukVelocity, Freemaker, XSLT dan Tiles.
Jenis Hasil Dispatcher
Itu dispatchertipe hasil adalah tipe default, dan digunakan jika tidak ada tipe hasil lain yang ditentukan. Ini digunakan untuk meneruskan ke servlet, JSP, halaman HTML, dan seterusnya, di server. Ini menggunakan metode RequestDispatcher.forward () .
Kami melihat versi "singkatan" dalam contoh sebelumnya, di mana kami menyediakan jalur JSP sebagai badan tag hasil.
<result name = "success">
/HelloWorld.jsp
</result>
Kita juga dapat menentukan file JSP menggunakan tag <param name = "location"> dalam elemen <result ...> sebagai berikut -
<result name = "success" type = "dispatcher">
<param name = "location">
/HelloWorld.jsp
</param >
</result>
Kami juga dapat menyediakan a parseparameter, yang benar secara default. Parameter parse menentukan apakah parameter lokasi akan diurai untuk ekspresi OGNL atau tidak.
Jenis Hasil FreeMaker
Dalam contoh ini, kita akan melihat bagaimana kita bisa menggunakannya FreeMakersebagai teknologi tampilan. Freemaker adalah mesin templat populer yang digunakan untuk menghasilkan keluaran menggunakan templat yang telah ditentukan sebelumnya. Sekarang mari kita buat file template Freemaker bernamahello.fm dengan konten berikut -
Hello World ${name}
File di atas adalah template tempat nameadalah parameter yang akan diteruskan dari luar menggunakan tindakan yang ditentukan. Anda akan menyimpan file ini di CLASSPATH Anda.
Selanjutnya, mari kita ubah struts.xml untuk menentukan hasil sebagai berikut -
<?xml version = "1.0" Encoding = "UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name = "struts.devMode" value = "true" />
<package name = "helloworld" extends = "struts-default">
<action name = "hello"
class = "com.tutorialspoint.struts2.HelloWorldAction"
method = "execute">
<result name = "success" type = "freemarker">
<param name = "location">/hello.fm</param>
</result>
</action>
</package>
</struts>
Mari kita simpan file HelloWorldAction.java, HelloWorldAction.jsp dan index.jsp seperti yang telah kita buat di bab contoh.
Sekarang klik kanan pada nama proyek dan klik Export > WAR File untuk membuat file Perang.
Kemudian terapkan WAR ini di direktori webapps Tomcat. Terakhir, jalankan server Tomcat dan coba akses URLhttp://localhost:8080/HelloWorldStruts2/index.jsp. Ini akan menghasilkan layar berikut.
Masukkan nilai "Struts2" dan kirimkan halaman tersebut. Anda harus melihat halaman berikutnya.
Seperti yang Anda lihat, ini persis sama dengan tampilan JSP kecuali kita tidak terikat untuk menggunakan JSP sebagai teknologi tampilan. Kami telah menggunakan Freemaker dalam contoh ini.
Jenis Hasil Pengalihan
Itu redirecttipe hasil memanggil metode response.sendRedirect () standar , menyebabkan browser membuat permintaan baru ke lokasi tertentu.
Kita bisa menyediakan lokasi baik di badan elemen <result ...> atau sebagai elemen <param name = "location">. Redirect juga mendukungparseparameter. Berikut adalah contoh yang dikonfigurasi menggunakan XML -
<action name = "hello"
class = "com.tutorialspoint.struts2.HelloWorldAction"
method = "execute">
<result name = "success" type = "redirect">
<param name = "location">
/NewWorld.jsp
</param >
</result>
</action>
Jadi cukup ubah file struts.xml Anda untuk menentukan jenis pengalihan seperti yang disebutkan di atas dan buat file baru NewWorld.jpg di mana Anda akan dialihkan setiap kali tindakan hello akan kembali berhasil. Anda dapat memeriksa contoh Tindakan Pengalihan Struts 2 untuk pemahaman yang lebih baik.