Struts 2 - Contoh Hello World
Seperti yang telah Anda pelajari dari arsitektur Struts 2, saat Anda mengklik hyperlink atau mengirimkan formulir HTML dalam aplikasi web Struts 2, input dikumpulkan oleh Controller yang dikirim ke kelas Java yang disebut Actions. Setelah Tindakan dijalankan, hasil memilih sumber daya untuk memberikan respons. Sumber daya umumnya JSP, tetapi juga bisa berupa file PDF, spreadsheet Excel, atau jendela applet Java.
Dengan asumsi bahwa Anda telah membangun lingkungan pengembangan Anda. Sekarang, mari kita lanjutkan untuk membangun yang pertamaHello World Struts2proyek. Tujuan dari proyek ini adalah untuk membangun aplikasi web yang mengumpulkan nama pengguna dan menampilkan "Hello World" diikuti dengan nama pengguna.
Kami harus membuat empat komponen berikut untuk setiap proyek Struts 2 -
Sr Tidak | Komponen & Deskripsi |
---|---|
1 | Action Buat kelas tindakan yang akan berisi logika bisnis lengkap dan kontrol interaksi antara pengguna, model, dan tampilan. |
2 | Interceptors Buat pencegat jika diperlukan, atau gunakan pencegat yang sudah ada. Ini adalah bagian dari Controller. |
3 | View Buat JSP untuk berinteraksi dengan pengguna untuk menerima masukan dan menyajikan pesan akhir. |
4 | Configuration Files Buat file konfigurasi untuk memasangkan Action, View dan Controllers. File-file ini adalah struts.xml, web.xml, struts.properties. |
Saya akan menggunakan Eclipse IDE, sehingga semua komponen yang diperlukan akan dibuat di bawah Dynamic Web Project. Mari kita mulai dengan membuat Proyek Web Dinamis.
Buat Proyek Web Dinamis
Mulai Eclipse Anda dan lanjutkan dengan File > New > Dynamic Web Project dan masukkan nama proyek sebagai HelloWorldStruts2 dan setel sisa opsi seperti yang diberikan di layar berikut -
Pilih semua opsi default di layar berikutnya dan terakhir periksa Generate Web.xml deployment descriptorpilihan. Ini akan membuat proyek web dinamis untuk Anda di Eclipse. Sekarang pergilahWindows > Show View > Project Explorer, dan Anda akan melihat jendela proyek Anda seperti di bawah ini -
Sekarang salin file berikut dari folder lib struts 2 C:\struts-2.2.3\lib untuk proyek kami WEB-INF\libmap. Untuk melakukan ini, Anda cukup drag dan drop semua file berikut ke folder WEB-INF \ lib.
- commons-fileupload-x.y.z.jar
- commons-io-x.y.z.jar
- commons-lang-x.y.jar
- commons-logging-x.y.z.jar
- commons-logging-api-x.y.jar
- freemarker-x.y.z.jar
- javassist-.xy.z.GA
- ognl-x.y.z.jar
- struts2-core-x.y.z.jar
- xwork-core.x.y.z.jar
Buat Kelas Aksi
Kelas tindakan adalah kunci untuk aplikasi Struts 2 dan kami menerapkan sebagian besar logika bisnis di kelas tindakan. Jadi mari kita buat file java HelloWorldAction.java di bawahJava Resources > src dengan nama paket com.tutorialspoint.struts2 dengan konten yang diberikan di bawah ini.
Kelas Tindakan menanggapi tindakan pengguna saat pengguna mengklik URL. Satu atau lebih metode kelas Action dijalankan dan hasil String dikembalikan. Berdasarkan nilai hasil, halaman JSP tertentu dirender.
package com.tutorialspoint.struts2;
public class HelloWorldAction {
private String name;
public String execute() throws Exception {
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Ini adalah kelas yang sangat sederhana dengan satu properti yang disebut "nama". Kami memiliki metode pengambil dan penyetel standar untuk properti "nama" dan metode eksekusi yang mengembalikan string "berhasil".
Kerangka Struts 2 akan membuat objek dari HelloWorldActionkelas dan memanggil metode yang dieksekusi sebagai tanggapan atas tindakan pengguna. Anda memasukkan logika bisnis Anda ke dalam metode ini yang akhirnya mengembalikan konstanta String. Dengan kata lain, untuk setiap URL, Anda harus menerapkan satu kelas tindakan dan Anda dapat menggunakan nama kelas itu secara langsung sebagai nama tindakan Anda atau Anda dapat memetakan ke beberapa nama lain menggunakan file struts.xml seperti yang ditunjukkan di bawah ini.
Buat Tampilan
Kami membutuhkan JSP untuk menyajikan pesan terakhir, halaman ini akan dipanggil oleh kerangka kerja Struts 2 ketika tindakan yang telah ditentukan akan terjadi dan pemetaan ini akan ditentukan dalam file struts.xml. Jadi mari kita buat file jsp di bawah iniHelloWorld.jspdi folder WebContent di proyek eclipse Anda. Untuk melakukan ini, klik kanan pada folder WebContent di penjelajah proyek dan pilihNew >JSP File.
<%@ page contentType = "text/html; charset = UTF-8" %>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World, <s:property value = "name"/>
</body>
</html>
Direktif taglib memberi tahu penampung Servlet bahwa halaman ini akan menggunakan Struts 2 tag dan tag tersebut akan diawali dengan s.
Tag s: property menampilkan nilai dari action class property "name> yang dikembalikan oleh metode getName() dari kelas HelloWorldAction.
Buat Halaman Utama
Kami juga perlu menciptakan index.jspdi folder WebContent. File ini akan berfungsi sebagai URL tindakan awal di mana pengguna dapat mengklik untuk memberi tahu kerangka kerja Struts 2 untuk memanggil metode yang ditentukan dari kelas HelloWorldAction dan membuat tampilan HelloWorld.jsp.
<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
<form action = "hello">
<label for = "name">Please enter your name</label><br/>
<input type = "text" name = "name"/>
<input type = "submit" value = "Say Hello"/>
</form>
</body>
</html>
Itu hellotindakan yang ditentukan dalam file tampilan di atas akan dipetakan ke kelas HelloWorldAction dan metode eksekusi menggunakan file struts.xml. Ketika pengguna mengklik tombol Kirim, itu akan menyebabkan kerangka Struts 2 menjalankan metode eksekusi yang ditentukan di kelas HelloWorldAction dan berdasarkan nilai yang dikembalikan dari metode tersebut, tampilan yang sesuai akan dipilih dan diberikan sebagai respons.
File Konfigurasi
Kita membutuhkan pemetaan untuk mengikat URL, kelas HelloWorldAction (Model), dan HelloWorld.jsp (tampilan) bersama-sama. Pemetaan memberi tahu framework Struts 2 kelas mana yang akan merespons tindakan pengguna (URL), metode kelas mana yang akan dieksekusi, dan tampilan apa yang akan dirender berdasarkan hasil String yang dikembalikan metode tersebut.
Jadi mari kita buat file bernama struts.xml. Karena Struts 2 membutuhkan struts.xml untuk ada di folder kelas. Karenanya, buat file struts.xml di bawah folder WebContent / WEB-INF / class. Eclipse tidak membuat folder "kelas" secara default, jadi Anda harus melakukannya sendiri. Untuk melakukan ini, klik kanan pada folder WEB-INF di penjelajah proyek dan pilihNew > Folder. Struts.xml Anda akan terlihat seperti -
<?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">/HelloWorld.jsp</result>
</action>
</package>
</struts>
Beberapa kata yang perlu dipahami tentang file konfigurasi di atas. Di sini, kami menetapkan konstantastruts.devMode untuk true, karena kami bekerja di lingkungan pengembangan dan kami perlu melihat beberapa pesan log yang berguna. Kemudian, kami mendefinisikan paket yang disebuthelloworld.
Membuat paket berguna saat Anda ingin mengelompokkan tindakan Anda. Dalam contoh kami, kami menamai tindakan kami sebagai "halo" yang sesuai dengan URL/hello.action dan didukung olehHelloWorldAction.class. Ituexecute metode dari HelloWorldAction.class adalah metode yang dijalankan saat URL /hello.actiondipanggil. Jika hasil dari metode eksekusi mengembalikan "sukses", maka pengguna akan dibawa keHelloWorld.jsp.
Langkah selanjutnya adalah membuat file web.xmlfile yang merupakan titik masuk untuk setiap permintaan ke Struts 2. Titik masuk aplikasi Struts2 akan menjadi filter yang ditentukan dalam deskriptor penerapan (web.xml). Oleh karena itu, kita akan mendefinisikan entri kelas org.apache.struts2.dispatcher.FilterDispatcher di web.xml. File web.xml perlu dibuat di bawah folder WEB-INF di bawah Konten Web. Eclipse telah membuat file kerangka web.xml untuk Anda saat Anda membuat proyek. Jadi, mari kita memodifikasinya sebagai berikut -
<?xml version = "1.0" Encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Kami telah menetapkan index.jsp sebagai file selamat datang kami. Kemudian kami telah mengonfigurasi filter Struts2 untuk dijalankan di semua url (yaitu, url apa pun yang cocok dengan pola / *)
Untuk Mengaktifkan Log Rinci
Anda dapat mengaktifkan fungsionalitas logging lengkap saat bekerja dengan Struts 2 dengan membuat logging.properties file di bawah WEB-INF/classesmap. Pertahankan dua baris berikut di file properti Anda -
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = \
java.util.logging.ConsoleHandler
Default logging.properties menentukan ConsoleHandler untuk merutekan logging ke stdout dan juga FileHandler. Ambang level log penangan dapat diatur menggunakan SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST atau ALL.
Itu dia. Kami siap menjalankan aplikasi Hello World menggunakan framework Struts 2.
Prosedur untuk Menjalankan Aplikasi
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 URL http://localhost:8080/HelloWorldStruts2/index.jsp. Ini akan memberi Anda layar berikut -
Masukkan nilai "Struts2" dan kirimkan halaman tersebut. Anda harus melihat halaman berikutnya
Perhatikan bahwa Anda dapat menentukan index sebagai tindakan dalam file struts.xml dan dalam hal ini Anda dapat memanggil halaman indeks sebagai http://localhost:8080/HelloWorldStruts2/index.action. Lihat di bawah bagaimana Anda dapat mendefinisikan indeks sebagai tindakan -
<?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 = "index">
<result >/index.jsp</result>
</action>
<action name = "hello"
class = "com.tutorialspoint.struts2.HelloWorldAction"
method = "execute">
<result name = "success">/HelloWorld.jsp</result>
</action>
</package>
</struts>