Old Struts Validation Framework

Iseng-iseng gw pingin nulis gak tahu mo nulis apa???Mmm akhirnya gw buat aja tulisan/tutorial ini. Gw pingin nulis mengenai validation yang ada di Struts 1.2 pake Netbeans 5.5. Memang sih Struts 1.2 udah ketinggalan karena udah ada Struts 2 yang adopsi Webwork.

Tapi walau begitu Struts 1.2 atau yang sebelumnya masih banyak yang pake dalam project. OK untuk menyingkat waktu dan tenaga.. mari kita mulai

Apa yang kita butuhkan? Kita hanya butuh Netbeans 5.5 dan web container untuk ngetes aplikasi kita. Gw pake tomcat 5.5 yang udah bundle dengan Netbeans thanx Netbeans!!

  1. Buatlah satu project web.

step1.JPG

  1. Pilih Categories: Web dan Projects: Web Application seperti gambar diatas! Kemudian Next
  2. Tentukan nama Project dan Server yang digunakan kemudian Next

step2.JPG

  1. Pilih Framework Struts 1.2.9 dan tentukan file untuk appliaction resourcenya dan jangan lupa aktifkan add Struts TLDs, Kemudian Finish!!

step3.JPG

  1. Netbeans kemudian akan menciptakan web project baru yang sudah terintegrasi dengan struts framework

step4.JPG

OK sampe sini kita bisa mulai dengan membuat form html yang akan kita validasi inputan datanya. Dalam struts kita dapat melakukan validasi berbagai macam jenis inputan: Data harus diisi atau tidak, harus angka tipe tertentu, dalam range tertentu, email, tanggal, atau bahkan format tententu yang kita buatkan regular expresionnya. Kita akan mencoba untuk memvalidasi data string, email, range dan tanggal.

  1. Pada file index.jsp ubahlah sourcenya menjadi:

<%@ taglib uri=”/WEB-INF/struts-html.tld” prefix=”html” %>

<html>

<body>

<html:form action=”/submitForm”>

<table border=”0″ cellpadding=”2″ cellspacing=”0″>

<tr>

<td colspan=”3″><html:errors/></td>

</tr>

<tr>

<td>Nama</td>

<td>:</td>

<td><html:text property=”nama” size=”30″/></td>

</tr>

<tr>

<td>Alamat</td>

<td>:</td>

<td><html:text property=”alamat” size=”30″/></td>

</tr>

<tr>

<td>Usia</td>

<td>:</td>

<td><html:text property=”usia” size=”5″/></td>

</tr>

<tr>

<td>Tanggal Lulus</td>

<td>:</td>

<td><html:text property=”tanggal” size=”15″/> <small>dd/MM/yyyy</small></td>

</tr>

<tr>

<td>Email</td>

<td>:</td>

<td><html:text property=”email” size=”30″/></td>

</tr>

<tr>

<td colspan=”3″><html:submit value=”Submit”/></td>

</tr>

</table>

</html:form>

</body>

</html>

  1. Hapuslah file jsp yang lain! J
  2. Tambahkan Struts ActionForm dengan Nama BiodataForm dan package hen.com.form dan Superclassnya ValidatorForm, kemudian Finish

step5.JPG

  1. Ubahlah source Biodata.java menjadi

/*

* BiodataForm.java

*

* Created on May 11, 2007, 6:00 PM

*/

package hen.com.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

/**

*

* @author Hendro

* @version

*/

public class BiodataForm extends org.apache.struts.validator.ValidatorForm {

private String nama;

private String alamat;

private int usia;

private String tanggal;

private String email;

public BiodataForm(){}

public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getAlamat() {

return alamat;

}

public void setAlamat(String alamat) {

this.alamat = alamat;

}

public int getUsia() {

return usia;

}

public void setUsia(int usia) {

this.usia = usia;

}

public String getTanggal() {

return tanggal;

}

public void setTanggal(String tanggal) {

this.tanggal = tanggal;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

  1. Yang perlu kita ingat adalah setiap property yang ada di class BiodataForm harus sama dengan nama property pada form (dalam file index.jsp)
  2. Selanjutnya kita mulai dengan konfigurasi untuk validasinya. Bukalah file validation.xml yang ada pada Configuration File list..

step6.JPG

  1. Ubahlah isi file validation.xml menjadi:

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<!DOCTYPE form-validation PUBLIC

“-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN”

http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd”&gt;

<form-validation>

<global></global>

<formset>

<form name=”BiodataForm”>

<field property=”nama” depends=”required”>

<arg0 key=”BiodataForm.nama”/>

</field>

<field property=”alamat” depends=”required”>

<arg0 key=”BiodataForm.alamat”/>

</field>

<field property=”usia” depends=”required,integer,intRange”>

<arg0 key=”BiodataForm.usia”/>

<arg1 name=”intRange” key=”${var:min}” resource=”false”/>

<arg2 name=”intRange” key=”${var:max}” resource=”false”/>

<var><var-name>min</var-name><var-value>10</var-value></var>

<var><var-name>max</var-name><var-value>85</var-value></var>

</field>

<field property=”tanggal” depends=”required,date”>

<arg0 key=”BiodataForm.tanggal”/>

<var><var-name>datePattern</var-name><var-value>dd/MM/yyyy</var-value></var>

</field>

<field property=”email” depends=”email”>

<arg0 key=”BiodataForm.email”/>

</field>

</form>

</formset>

</form-validation>

  1. Untuk validasi email kita tidak menggunakan “required” artinya email boleh tidak diisi.
  2. Selanjutnya bukalah file ApplicationResource.properties dan tambahkan baris berikut di awal file.

BiodataForm.nama=Nama

BiodataForm.alamat=Alamat

BiodataForm.usia=Usia

BiodataForm.tanggal=Tanggal

BiodataForm.email=Email

  1. Sampai disini kita udah selesai melakukan konfigurasi untuk validasi formnya, mudah bukan?
  2. Selanjutkan kita buatkan class Action yang akan memproses data jika data valid. Biasanya class ini berfungsi untuk memanggil fungsi business logic pada layer lain, misalnya simpan ke database J Nah untuk saat ini kita tidak akan melakukan apa, tetapi hanya meneruskan ke halaman lain.. (sukses.jsp)
  3. Tambahkan Struts Action class dengan nama ProsesAction, packagenya hen.com.action dan action pathnya /submitForm kemudian Next!!

step7.JPG

  1. Pada tampilan selanjutnya pilihlah ActionForm Bean Name=BiodataForm, Input resource=index.jsp dengan scope request. Pastikan juga validate ActionForm Bean tercentang. Kemudian Next!!

step8.JPG

  1. Pada source class ini kita tidak akan melakukan apa-apa J
  2. Kita butuh melakukan konfigurasi mapping pada file struts-config.xml. Bukalah file tsb.
  3. Pada bagian action mappings, ubahlah action yang ada menjadi

<action input=”/index.jsp” name=”BiodataForm” path=”/submitForm” scope=”request” type=”hen.com.action.ProsesActio”>

<forward name=”success” path=”/sukses.jsp”/>

</action>

  1. Langkah terakhir kita tambahkan 1 file jsp dengan nama sukses.jsp

<html>

<body>

<h3>Terima kasih!! data anda valid!!</h3>

</body>

</html>

  1. FINISH!!!! Kita siap untuk uji coba.. Klik kanan pada project kemudian run!!

step9.JPG

  1. Jika tidak ada data yang kita input maka akan diberikan pesan kesalahan seperti di atas.
  2. Silahkan anda coba menginputkan data-data sembarang, perhatikan untuk usia hanya dapat menerima angka antara 10 s.d 85, begitu juga untuk tanggal hanya menerima format dd/MM/yyyy. Untuk email boleh kosong, tapi jika diisi harus dengan format email yang benar Nama dan Alamat tidak boleh kosong…

OK segitu dulu ya….

Mudah-mudahan bermanfaat!!!

4 Responses to Old Struts Validation Framework

  1. iklanmanjur says:

    pingin juga coba-coba struts tapi cuman punya komputer p3, bisa mati komputerku kena netbeans
    yang bisa dipake bikin struts tapi ringat apa ya

  2. Jewelicious says:

    Kalo mao bkin validasi email yg inputnya harus ___@___.___
    gimana? tp gk mau pake javascript… Help plz

  3. Hendro Steven says:
  4. Hendro Steven says:

    NOTEPAD + ANT ^.^ dulu juga aku pake 2 macam tools ini tapi ya itu capek…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: