• Tidak ada hasil yang ditemukan

Modul JENI 3

N/A
N/A
Protected

Academic year: 2017

Membagikan "Modul JENI 3"

Copied!
14
0
0

Teks penuh

(1)

BAB 8

Adva n ce d M V C

8 .1 Pe n da h u lu a n

Pada pem bahasan sebelum nya, kit a t elah m em aham i garis besar dasar dari St rut s. Kit a t elah m em pelaj ar i bagaim ana cara m engim plem ent asikan fram ew ork St rut s pada aplikasi dengan m engkonfigurasi Act ionServlet yang disediakan unt uk m enangani request . Kit a j uga t elah m em pelaj ari cara unt uk m em buat inst ance dari Act ion classes yang berfungsi sebagai act ion handlers pada penyerahan form dan user request yang lain. Telah diket ahui cara pem buat an Act ionForm classes yang m enyediakan cara m udah t ransfer dat a dari form m enuj u Act ionHandlers yang dibuat . Terakhir, t elah diket ahui pula m engenai penggunaan t ag library unt uk m enggabungkan form HTML dalam halam an JSP pada fram ework.

Pada bab ini, kit a akan m em bahas beberapa t eknik dan fit ur t erapan dari St rut s fram ework. Pert am a, akan kit a pelaj ari m engenai penggunaan DynaAct ionForm s unt uk m engurangi j um lah class yang kit a gunakan dalam fram ew ork. Kem udian, akan kit a t elusuri bagaim ana fram ew ork validat or berfungsi dalam hal validasi baik pada server- side m aupun client - side. Terakhir, akan dikenalkan Tiles fram ew ork , yang m em iliki fit ur present at ionlayer yang lebih kom pleks, sehingga dapat m em buat t em plat ing m achine t erhadap halam an – halam an yang ada pada aplikasi.

8 .2 D yn a Act ion For m s

Pada aplikasi skala besar ut am anya, j um lah class yang perlu unt uk dibuat dan dipergunakan dapat begit u t inggi. St rut s m endukung classes yang cukup m em bant u hal ini, t erut am a dalam hubungannya dengan Act ionForm s, yang m em persyarat kan solidnya im plem ent asi form keseluruhan pada aplikasi. Banyak dari developer y ang t erj ebak pada bat asan ini, ut am anya pada saat Act ionForm s adalah berupa JavaBeans sederhana yang m em iliki m et hod get dan set pada t iap form fields pada represent asinya.

(2)

Dibawah ini adalah cont oh konfigurasi dan deklarasi DynaAct ionForm s. Kit a gunakan sesuai cont oh pada bab sebelum nya, disini dibuat sebuah Act ionForm yang akan m enangani dat a yang dibut uhkan pada saat log in.

<?xml version=”1.0”?>

<!DOCTYPE struts-config PUBLIC “-//Apache Software Foundation//DTD Struts Configuration 1.1//EN”

“http://jakarta.apache.org/struts/dtds/struts-Sepert i yang t erlihat , pem buat an DynaAct ionForm berlangsung dengan am at sederhana, dan pada beberapa kasus, deklarasi DynaAct ionForm dalam file konfigurasi lebih sederhana dan cepat dibandingkan dengan m enuliskan inst ance Act ionForm secara langsung. Kit a t idak perlu m em perhat ikan form propert ies sert a m em buat m et hod get dan set pada set iap Act ionForm , dengan m enggunakan DynaAct ionForm hanya m em erlukan deklarasi propert y nam e dan t ype.

Berikut ini adalah Java t ypes yang didukung oleh DynaAct ionForm :

o j ava.lang.bigDecim al

o j ava.lang.bigI nt eger

o boolean dan j ava.lang.Boolean

o char dan j ava.lang.Charact er

o double dan j ava.lang.Double

o float dan j ava.lang.Float

o int dan j ava.lang.I nt eger

o long dan j ava.lang.Long

o short dan j ava.lang.Short

o j ava.lang.St ring

o j ava.lang.Dat e

o j ava.lant .Tim e

(3)

8 .3 V a lida t or s

Validasi input sangat dibut uhkan dalam aplikasi berbasis w eb. Dengan m enggunakan validasi input , didapat kan koreksi at as form at dan isi dari input yang diberikan user. Dalam banyak kasus, seorang user t idak selalu m em asukkan input yang benar, huruf dapat dim asukkan dalam field num erik dan sebaliknya; sebuah field yang m em persyarat kan m inim al 3 digit hanya diisikan dengan2 digit , dan sebagainya. Adalah t anggung j aw ab dari aplikasi unt uk w aspada dan m enangani kesalahan input disam ping kesalahan hasil dari proses business logic ( passw ord t idak cocok dan sebagainya) .

St rut s m eringankan kesulit an yang dihadapi developer dalam m enj alankan validasi dengan m enyediakan validasi fram ew ork yang disebut dengan Validat or Fram ework. Penggunaan fram ework ini m em iliki beberapa kelebihan :

o Fr a m e w or k m e n ye dia k a n be be r a pa a t ur a n va lida si. Terdapat beberapa rangkaian pem eriksaan um um pada aplikasi sepert i pem eriksaan form at , panj ang karakt er dan sebagainya. Fram ew ork ini m enyediakan kom ponen – kom ponen yang dibut uhkan sehingga developer t idak lagi m em buat kode yang akan m elakukan proses validasi. Kom ponen yang disediakan um um nya cukup m ewakili proses validasi global, nam un proses validasi lain j uga dapat dibuat .

o M e n gur a ngi r e duda n si k ode . Fram ewok m em isahkan kom ponen yang m elakukan validasi dengan kom ponen yang m em er lukan validasi. Hal ini j uga m em buat developer dalam penggunaan ulang kode dengan lebih m udah : kom ponen yang m em erlukan validasi cukup m endeklarasikan j enis validasi yang diinginkan disam ping m enam bahkan kode validasi pada kom ponen t ersebut .

o Sa t u t it ik m a in t e na nce . Developer t idak lagi m enelusuri aplikasi secara m enyeluruh unt uk m em eriksa at uran validasi yang t erdapat pada berm acam kom ponen. Seluruh at uran dideklar asikan pada file konfigurasi yang diberikan oleh fram ework.

Terdapat beberapa langkah yang dibut uhkan dalam m enam bahkan fungsi – fungsi validat or dalam aplikasi St rut s :

o Konfigurasi Validat or Plug- in

o Deklarasi form yang m em erlukan validasi, dan t ipe validasi yang dibut uhkan

o Mem buat pesan yang akan dit am pilkan j ika proses validasi m engalam i kegagalan

(4)

8 .3 .1 Kon figu r a si V a lida t or Plu g- in

Langkah ini diperlukan unt uk m em buat St rut s fram ework m enget ahui penggunaan Validat or fr am ew ork. Hal yang per lu dilakukan adalah m enam bahkan beberapa baris kode dalam st rut s- config.xm l. Berikut ini cont ohnya :

...

<forward name=”success” path=”/success.jsp”/> <forward name=”failure” path=”/failure.jsp”/> </action>

</action-mappings>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property

property="pathnames"

value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in>

</struts-config>

Pat h nam es propert y m enginform asikan pada fram ework dim ana let ak unt uk m enem ukan file konfigurasi yang diperlukan. Terdapat beberapa file konfigurasi : validat or- rules.xm l dan validat or.xm l.

8 .3 .2 va lida t or - r u le s.x m l

File konfigurasi ini m endefinisikan classes yang m engim plem ent asi kode validasi. Fram ew ork m enyert akan file ini dengan validat or classes yang t elah didefinisikan sebelum nya.

Dibawah ini adalah daft ar logical nam es dari validat ors yang disert akan dalam fram ework :

o r e qu ir e d – propert ies yang diberi t anda sebagai required harus m em ilik i m inim al sat u karakt er disam ping spasi

o m a sk – propert ies dengan m ask validat or harus sesuai dengan form at penulisan yang dicant um kan pada validat or dengan m enggunakan m a sk

variable

o m in le n gt h – propert y t ersebut harus m em iliki panj ang m inim al sam a at au lebih dari m in variable yang diberikan

o m a x le ngt h – propert y t ersebut harus m em ilik i panj ang yang sam a at au kurang dari m a x variable yang diberikan

o r a nge – propert y m em ilik i panj ang dalam area ant ara m ax dan m in value yang diberikan

o byt e , shor t , in t e ge r , long, floa t , dou ble – propert y harus sesuai dengan t ipe prim it iv e yang diberikan

o da t e – validasi sukses j ika value dari propert y berupa t anggal yang valid

(5)

o e m a il – validasi berhasil j ika value dari propert y t ersebut form at em ail yang benar

8 .3 .3 va lida t ion - x m l

File konfigurasi ini m enginform asikan pada fram ew ork form apa saj a yang m em but uhkan validasi dan at uran validasi apa yang akan diim plem ent asikan. Fram ework ini hanya m enyediakan st rukt ur dari file. Developer harus m engkonfigurasi sendiri file ini unt uk m em bant u fungsionalit as fram ework.

8 .3 .3 .1 M e n k on figu r a si file va lida t ion .x m l

Sekali lagi, kit a akan m em pelaj ar i elem en yang dibut uhkan oleh file konfigurasi pada cont oh. Dibaw ah ini adalah pot ongan yang akan t erlihat dari file j ika kit a akan m engkonfigurasi form login t erlebih dahulu.

<formset>

<form name=”loginForm”>

<field property=”loginName” depends=”required”> <arg0 key=”error.loginname.required”/> </field>

<field property=”password” depends=”required,minlength”/> <arg0 key=”error.password.required”/>

<var>

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

</field> </form>

</formset>

Berikut adalah m acam elem en yang t erdapat pada file XML ini.

< form set >

Elem en ini berfungsi sebagai cont ainer unt uk elem en – elem en pada form

< form >

(6)

< field>

Tiap elem en field m er epresent asikan sebuah propert y pada form yang m em erlukan validasi. Elem en ini m em ilik i at ribut – at ribut sebagai berikut :

o propert y – nam a dari propert y dalam form yang akan divalidasi

o depends – daft ar validat or yang dipisahkan dengan t anda kom a yang kem udaian akan diaplikasikan pada propert y. Nam a dari validat or didefinisikan dalam validat or- rules.xm l.

< arg0>

Mendefinisikan key pada error m essage yang akan dit am pilkan j ik a propert y gagal dalam proses validasi. Key dan error m essage yang akan dit am pilkan dapat dit em ukan pada resource bundle yang dibuat oleh developer.

< var>

Tiap elem en var m endefinisikan sebuah variabel dengan value m asing – m asing yang akan dit eruskan m enuj u validat or. Nam a dari variabel didefinisikan dengan elem en t urunan < var- nam e> , sedangkan isi value- nya didefinisikan m enggunakan elem en t urunan < var- value> .

Telah dij elaskan di at as inform asi – inform asi t ent ang berm acam elem en pada file konfigurasi, dapat dikat akan bahwa cont oh t ersebut m engkonfigurasi form login aplikasi St rut s sehingga loginNam e dan password field harus m em ilik i value y ang dim asukkan. Sebagai t am bahan, password field harus m em iliki panj ang m inim al 4 karakt er unt uk m elew at i proses validasi.

8 .3 .3 .2 M e n de fin isik a n r e sour ce bu ndle

Elem en < arg0> di at as m endefinisikan sebuah key yang perlu dicocokkan dengan sebuah ent ry pada resource bundle. Ent ry t ersebut kem udian digunakan unt uk m enent ukan pesan yang akan dit am pilkan pada user. Validat or fram ework m enggunakan resource bundle yang j uga digunakan oleh St rut s fram ework, dim ana pada kondisi default , dapat dit em ukan pada direkt ori WEB- I NF/ classes dengan nam a Applicat ionResources.propert ies. Jika file resource bundle t ersebut t idak dit em ukan pada aplikasi, m aka buat lah sebuah t ext file dengan nam a yang sam a.

Ent ry pada resource bundle adalah pasangan sederhana berupa key= value. Pada konfigurasi file diat as, kit a dapat kan isi file sebagai berik ut :

error.loginname.required=Masukkan nama anda

(7)

Langkah t erakhir dalam m enggunakan validat ion fram ework adalah m engubah Act ionForm dan DynaAct ionForm classes unt uk m em akai classes yang disediakan. Gunakan DynaAct ionForm pada cont oh sebelum nya :

<?xml version=”1.0”?>

<!DOCTYPE struts-config PUBLIC “-//Apache Software Foundation//DTD Struts Configuration 1.1//EN” “http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd” >

<struts-config> <form-beans>

<form-bean

name=”loginForm”

type="org.apache.struts.validator.DynaValidatorForm"> <form-property name=”loginName” type=”java.lang.String”/> <form-property name=”password” type=”java.lang.String”/> </form-bean>

</form-beans> <action-mappings>

<action name=”loginForm” path=”/login”

scope=”request”

type=”login.LoginAction”

validation=”true”>

<forward name=”success” path=”/success.jsp”/> <forward name=”failure” path=”/failure.jsp”/> </action>

</action-mappings> </struts-config>

8 .4 Tile s

Fram ework lain yang bekerj a dengan St rut s adalah Tiles fram ework. Dengan m enggunakan Tiles, kit a dapat m endefinisikan t em plat es dan screen inst ances yang dapat digunakan dalam aplikasi dengan m udah.

Apakah t em plat es it u?

Secara ringkas, sebuah halam an t em plat e adalah desain layout halam an yang dapat digunakan kem bali oleh halam an apapun pada aplik asi. Penggunaan t em plat es m em buat aplikasi t erlihat lebih konsist en.

Unt uk lebih m em aham i konsep t em plat es, m ari k it a perhat ikan beberapa halam an dari aplikasi web :

H ALAM AN D ARI SI TUS TERPERCAYA

(8)

Pert im bangkan bagaim ana cara kit a unt uk m engim plem ent asikan beberapa halam an yang sam a. Jika kit a im plem ent asikan pada set iap halam an sepert i yang t erlihat , dalam hal ini t epat sat u halam an yang berhubungan dengan halam an- halam an yang t erlihat pada gam bar, pada nant inya kit a akan m engalam i kesulit an pada saat m elakukan proses m aint enance. Hal it u dikarenakan oleh banyaknya duplikasi kode yang akan digunakan, j ika pada suat u saat seseorang m em ut uskan bahwa gam bar pada halam an t idak t erlihat bagus, at aupun navigat ional m enu pada bagian kiri t idak t erlalu m enarik, perubahan akan dilakukan t erhadap seluruh halam an yang ada.

Seorang program m er m enget ahui bahwa pem bagian area kode dapat diduplikasikan pada seluruh halam an aplikasi. Konsep ini j uga dapat dit erapkan pada halam an JSP/ HTML : navigat ional links dapat berupa sat u halam an t ersendiri, header im ages sebagai halam an lain, begit u pula dengan foot er. Halam an – halam an ini kem udian dapat digunakan pada halam an dengan isi body. Hal ini dapat dilakukan t anpa m enggunakan fram ework apapun, cukup m enggunakan < j sp: include> act ion yang t elah dibahas sebelum nya pada bagian dasar JSP.

Terdapat penyelesaian yang lebih baik, yait u dengan m em buat bagian body sebagai halam an bagian JSP t ersendiri, kem udian m em buat sebuah halam an JSP lain y ang akan berfungsi sebagai default form at dan layout dari halam an halam an yang ada. Seorang developer kem udian akan m engim plem ent asikannya dengan cara m em asukkan halam an yang berisi body cont ent dalam t em plat e t ersebut .

Terlihat j elas kelebihan dari cara diat as : segala keperluan perubahan hanya akan dilakukan pada sat u aspek pada present at ion layer, sebagai cont oh header, akan dit erapkan pada seluruh halam an aplikasi hanya dengan m em odifikasi sat u halam an. Jika anda ingin m enggant i layout dari aplikasi, disam ping m engerj akan cont ent dari aplikasi, cukup dilakukan dengan m engubah halam an t em plat e yang digunakan sebelum nya.

Berikut nya akan dibahas m engenai im plem ent asi t em plat e m enggunakan Tiles Fram ework :

8 .4 .1 M e m pe r sia pk a n Tile s

Sebelum m enggunakan Tiles fram ew ork, perlu dilakukan beberapa langkah persiapan sebagai berikut :

1. Menam bahkan beberapa baris kode berikut pada st rut s- config.xm l sebelum t ag penut up < / st rut s- config>

<plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property

(9)

Kode ini m enginform asikan pada St rut s bahw a aplikasi akan m enggunakan TilesFram ew ork dan file konfigurasinya dilet akkan pada direkt ori / WEB- I NF dengan nam a t iles- defs.xm l

2. Langkah berikut nya, salin file st rut s- t iles.t ld dan t iles- config.dt d dari direkt ori libr ary St rut s m enuj u direkt ori / WEB- I NF. File pert am a berisi m acam – m acam t ags yang dibut uhkan dalam penggunaan Tiles, sedangkan file kedua berisi st rukt ur file konfigurasi dari t iles- defs.

3. Buat sebuah file konfigurasi kosong yang akan diisi kem udian. Buat sebuah file XML pada direkt ori / WEB- I NF. kem udian beri nam a dengan t iles- defs.xm l. I si file t ersebut dengan kode sebagai berikut :

<!DOCTYPE tiles-definitions PUBLIC

"-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">

<tiles-definitions>

</tiles-definitions>

Jika langkah – langkah t ersebut t elah dij alankan seluruhnya, m aka Tiles Fram ew ork siap digunakan.

8 .4 .2 M e m bu a t La you t Te m pla t e

Langkah pert am a dalam pem buat an sebuah t em plat e adalah m engident ifikasi kom ponen yang akan dit em pat kan. Sebagai cont oh, sebagai besar halam an web m em iliki kom ponen header, foot er, m enu bar dan body.

Berikut ini rancang diagram dasar t em plat e yang akan dibuat :

Header

Menu

Bar

Body

(10)

Unt uk m em buat sebuah halam an t em plat e yang m enerapkan layout t ersebut , ikut i langkah – langkah berikut ini :

1. Buat sebuah halam an JSP baru 2. I m port t ag library dari Tiles

3. Buat file HTML yang m enerapkan layout t ersebut , biarkan kosong pada bagian elem en yang digunakan

4. Gunakan t ag < t ile s:in se r t > yang berfungsi sebagai penent u let ak dari kom ponen layout

Halam an HTML yang m enerapkan layout t ersebut m em ilik i bent uk sesederhana t abel, dengan kom ponen sebagai elem en t abel sepert i t erlihat pada halam an JSP di baw ah ini :

<TD colspan="2"><tiles:insert attribute="header"/></TD> </TR>

<TR>

<TD width="140" valign="top"> <tiles:insert attribute="menu"/> </TD>

<TD valign="top" align="left"> <tiles:insert attribute="body"/> </TD>

</TR> <TR>

<TD colspan="2">

<tiles:insert attribute="footer" /> </TD> hal ini berfungsi unt uk m em asukkan bagian JSP yang direferensikan dengan nam a yang t erisi pada at ribut a t t r ibu t e.

(11)

8 .4 .3 M e m bu a t Scr e e n D e fin it ion s

Set elah m em uat sebuah t em plat e, kit a dapat m enggunakannya unt uk m endefinisikan sebuah screen. Pem buat an screen definit ion dapat dilakukan dalam dua cara dalam Tiles fram ew ork : didefinisikan dalam halam an JSP, at au dalam file XML yang dikenali oleh fram ework.

Mem buat sebuah definit ion m enggunakan halam an JSP:

Pem buat an definit ion dalam halam an JSP m enerapkan banyak m acam t ag yang disert akan oleh Tiles Fram ework :

o < t iles: definit ion> - t ag dasar yang digunakan unt uk m endefinisikan layer. Value dari at t ribut e id adalah nam a yang t erhubung dengan kom ponen lain. Value dari page at t ribut e adalah lokasi dim ana t em plat e file t ersebut berasal.

o < t iles: put > - t ag ini digunakan unt uk m enem pat kan sebuah value ke dalam sebuah at t ribut e dalam t em plat e. N a m e at t ribut e adalah nam a dari lokasi t arget dalam t em plat e, sedangkan va lu e m endefinisikan lokasi dar i fragm en JSP yang akan digunakan.

Perhat ikan cont oh dibaw ah ini :

<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>

<tiles:definition id="welcomePage" page="/layout/basicLayout.jsp"> <tiles:put name="title" value="Welcome!"/>

<tiles:put name="header" value="/header.jsp"/> <tiles:put name="footer" value="/footer.jsp"/> <tiles:put name="menu" value="/menu.jsp"/> <tiles:put name="body" value="/welcome.jsp"/> </tiles:definition>

Pada cont oh t ersebut , kit a m em buat sebuah screen definit ion unt uk halam an ut am a, yait u halam an m uka aplikasi. Halam an t ersebut m enggunakan layout yang didefinisikan pada daft ar, dan m enem pat kan kom ponen t it le, header, foot er, m enu dan body pada lokasi yang dit ent ukan pada t em plat e.

(12)

8 .4 .4 M e m bu a t de fin it ion m e n ggu n a k a n k on figu r a si file X M L

Cara kedua unt uk m em buat screen definit ions adalah m encant um kan konfigurasi pada file t iles- defs.xm l. Synt ax penulisan konfigurasi t ersebut sangat m irip dengan t ag < t iles: definit ion> yang digunakan sebelum nya :

<!DOCTYPE tiles-definitions PUBLIC

"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions>

<definition name="welcomePage" page="/layout/basicLayout.jsp"> <put name="title" value="Welcome!"/>

<put name="header" value="/header.jsp"/> <put name="footer" value="/footer.jsp"/> <put name="menu" value="/menu.jsp"/> <put name="body" value="/welcome.jsp"/> </definition>

<!-- ... more definitions ... --> </tiles-definitions>

Apakah perbedaan ant ara dua cara t ersebut ? Kedua cara m enyim pan definit ion sebagai JavaBean ke dalam m em ory. Met hod pada JSP m e-load definit ion set elah fragm en JSP yang berisi definit ion t ersebut t elah diakses, dan secara default , m em buat nya t erlihat hanya pada halam an yang sam a. Kondisi ini m em buat penggunaan ulang dari screen definit ion pada aplikasi sedikit lebih sulit , dibut uhkan perhat ian ekst ra unt uk m enghindari loading dan loading definit ion y ang t idak pent ing t erhadap m em ory.

Dilain pihak, XML m et hod m em buat screen definit ion dapat digunakan oleh keseluruhan aplikasi secara langsung set elah st art up aplikasi. Tiles fram ew ork m em buat nya perm anen dalam m em ory. Sat u- sat unya hal yang diperlukan oleh kom ponen unt uk m enggunakannya adalah dengan m em asukkan nam a definit ion t ersebut .

(13)

8 .4 .5 M e n ggu n a k a n Scr e e n D e fin it ion s

Mem buat sebuah screen definit ion belum cukup unt uk dit am pilkan pada user. Supaya sebuah definit ion dapat dipakai, gunakan t ag < t iles: insert > dan isikan nam a definit ion yang akan dit am pilkan :

<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %> <tiles:insert beanName="welcomePage" flush="true"/>

Salah sat u perm asalahan dengan pendekat an ini adalah m eningkat kan j um lah halam an JSP yang dibut uhkan unt uk m enam pilkan layer yang berbeda pada user, disam ping kom ponen body cont ent , t iap screen m em but uhkan halam an t erpisah yang akan m enggunakan screen definit ion. Unt uk sebuah aplikasi yang m em but uhkan 100 screen at au lebih, j um lah halam an yang dibut uhkan akan berlipat ganda.

Pendekat an yang lebih baik adalah dengan m enggunakan definit ion sebagai t arget dari Act ionForward. Dengan m enam bahkan Tiles fram ew ork sebagai plugin pada St rut s, St rut s m enget ahui screen definit ions yang dibuat dengan m enggunakan Tiles. Screen nam es berfungsi sebagai penent u lokasi pada t ag < forward> . Perhat ikan cont oh di baw ah ini :

<action-mappings>

<action name=”loginForm” path=”/login” scope=”request”

type=”login.LoginAction” validation=”true”>

<forward name=”success” path=”/welcomePage”/>

<forward name=”failure” path=”/failure.jsp”/> </action>

</action-mappings>

Disini kit a m elakukan m odifikasi at as cont oh dari st rut s- config.xm l sebelum nya, sehingga pada sit uasi dengan kondisi su cce ss dipet akan pada definit ion

w e lcom e Pa ge. Sepert i yang t erlihat , pendekat an ini cukup sederhana, m udah digunakan, dan m engurangi j um lah halam an JSP yang harus dibuat .

8 .4 .6 M e n a m ba h k a n D e fin it ion s

(14)

Perhat ikan cont oh dibaw ah ini :

<definition name="basicDefinition" page="/layout/basicLayout.jsp"> <put name="header" value="/header.jsp"/>

<put name="footer" value="/footer.jsp"/> <put name="menu" value="/menu.jsp"/> </definition>

<definition name="welcomePage" extends="basicDefinition"> <put name="title" value="Welcome!"/>

<put name="body" value="/welcome.jsp"/> </definition>

<definition name="otherPage" extends="basicDefinition"> <put name="title" value="My title"/>

<put name="body" value="/otherContent.jsp"/> </definition>

Gambar

tabel, dengan komponen sebagai elemen tabel seperti terlihat pada halaman JSP di

Referensi

Garis besar

Dokumen terkait

Oleh karena itu, dalam penelitian ini biodiesel disintesis dengan esterifikasi enzimatik dari kualitas bahan baku yang tidak dimurnikan dan jauh lebih murah daripada minyak

Peraturan Presiden Republik Indonesia Nomor 24 Tahun 2010 tentang Kedudukan, Tugas, dan Fungsi Kementerian Negara serta Susunan Organisasi, Tugas, dan Fungsi

Nama  :  Andi Risnawati  Perusahaan  :  PT. Colektif Tbk Jabatan  :  Asisten Manager No. Karyawan  : 

PEMBELAJARAN TARI YUYU KANGKANG DALAM PROGRAM LIFE SKILL DI SMK KESENIAN PUTERA NUSANTARA MAJALENGKA.. Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

(1) Masyarakat lokal atau sekitar kawasan yang akan melakukan kegiatan religi, paling lambat dalam jangka waktu 2 (dua) minggu sebelum pelaksanaan kegiatan, harus

[r]

“Penerapan Teknologi Augmented Reality Bidang Pendidikan Untuk Menjelaskan Materi Proses Pembuatan Chip”, Jurnal ilmih KOMPUTASI, Volume 12 Nomor:

Guna melaksanakan Pembuktian Dokumen Kualifikasi yang disampaikan oleh Perusahaan saudara dan diharapkan Perusahaan membawa kelengkapan Administrasi sebagai berikut :. POKJA II