«

»

May 30

[Java] Mengenal Struts2

Struts2 adalah salah satu web framework untuk java, masih ada beberapa web framework lain seperti JSF, SpringMVC, dll. Struts2  adalah penggabungan dari Struts dan Webwork, dan salah satu framework MVC yang sering digunakan dalam membangun web di java. Sebenarnya tidak terlalu sulit jika kita sudah memahami dasar dari java web. Dalam artikel kali ini, kita akan membuat program hello world menggunakan struts, tidak usah terbayang bakalan ribet, simple sekali.

Library yang dibutuhkan untuk membuat program ini adalah :

  1. commons-collections-3.2.jar
  2. commons-digester-2.0.jar
  3. commons-fileupload-2.0.jar
  4. commons-io-1.3.2.jar
  5. commons-logging-1.0.4.jar
  6. freemarker-2.3.15.jar
  7. ognl-2.7.3.jar
  8. struts2-convention-plugin-2.1.8.1.jar
  9. struts2-core-2.1.8.1.jar
  10. xwork-core-2.1.6.jar

library Struts convention plugin dibutuhkan jika kita ingin menggunakan annotation. Langsung saja, sebelumnya edit web.xml menjadi seperti ini :

web.xml   
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>BelajarStruts2</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.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

lalu buat file index.jsp seperti ini :

index.jsp   
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<title>Hello World</title>
	</head>
<body>
	<s:form action="hello">
		<s:textfield name="userName" label="User Name"/>
		<s:submit />
	</s:form>
</body>
</html>

pada kode diatas, kita hanya akan menyediakan textfield bernama userName dan tombol submit, yang perlu diperhatikan adalah nama dari textfield nantinya harus sama dengan class action yang akan kita buat, dalam contoh kali ini, saya akan membuat class  Hello pada package com.kusandriadi.struts2 :

package com.kusandriadi.struts2;
 
import com.opensymphony.xwork2.ActionSupport;
 
public class Hello extends ActionSupport{
 
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;
 
	private String userName;
 
	private String message;
 
	public String execute(){
		message = "Hello " + userName + " !!";
		return SUCCESS;
	}
 
	public String getUserName() {
		return userName;
	}
 
	public void setUserName(String userName) {
		this.userName = userName;
	}
 
	public String getMessage() {
		return message;
	}
 
	public void setMessage(String message) {
		this.message = message;
	}
}

nama class disini harus sama dengan action URL pada index.jsp. setelah itu bagian terpenting nya adalah membuat file untuk membaca input kita tadi, sebenarnya untuk view, kita tidak diharus kan menggunakan jsp, banyak orang yang menggunakan Velocity atau Freemarker sebagai template pengganti jsp, tapi pada contoh kali ini saya akan menggunakan jsp, kurang lebih seperti ini :

hello.jsp   
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<title>Hello !</title>
	</head>
<body>
	<h1>${message}</h1>
</body>
</html>

jika saya tidak mengantuk atau tidak ada yang terlewat, seharus nya tidak ada error, jalankan file index.jsp lalu kita akan menemui screenshot seperti ini:

nah, disini kita tinggal memasukan kata yang ingin kita masukkan, dalam hal ini saya memasukan nama saya sendiri, lalu tekan tombol submit, dan otomatis struts akan memanggil action :

Loh bagaimana dengan struts.xml? kenapa kita tidak membuatnya? tenang, sekarang mari saya jelaskan satu persatu :

  1. Secara default struts convention plugin mencari action classes didalam package yang bernama struts2, struts, action dan actions, pada contoh diatas, package saya berikan nama com.kusandriadi.struts2, karena itu struts convention plugin secara default menunjuk package tersebut.
  2. Action classes harus meng-implement Action interface atau nama dari class action harus diakhiri dengan Action, dalam kasus diatas, saya meng-extends dari com.opensymphony.xwork2.ActionSupport yang secara tidak langsung juga mengimplements Action Interface.
  3. Secara default, Struts Convention plugin juga melihat result page kedalam WEB-INF/content.
  4. Struts Convention plugin menggunakan action class untuk mapping URL.
  5. Untuk mengetahui result page mana yang akan dipanggil, Struts convention plugin melihat action class mana yang membalikkan nilai “success”, lalu akan mencari result page yang bernama “namaaction-succes.jsp” atau “namaaction.jsp”, seperti yang sudah saya bilang sebelumnya, disini tidak harus menggunakan jsp, tapi kita bisa menggunakan template seperti velocity dan freemarker

Oke, sampai disini saja artikel saya, kritik dan saran welcome….

Regards

4 comments

  1. FArham

    Mantabs masta..mantaps..(walaupun belom ngerti)

    [Reply]

    Kus Andriadi Reply:

    cepet amat ham, baru gw post padahal..hahah

    [Reply]

  2. FArham

    yoyoy…pertamax gan

    [Reply]

  3. binun

    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    struts2

    struts2
    /*

    itu buat apa yah… :(

    [Reply]

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes