J.E.N.I BAB 7 Pengenalan Arsitektur MVC

  7 .1 Pe n ge n a la n Ar sit e k t u r M ode l- V ie w - Con t r olle r

  Arsit ekt ur Model- View- Cont roller adalah sebuah pola yang t erbukt i m em bangun proyek secara lebih efekt if. Hal it u dilakukan dengan m em ilah kom ponen ant ara Model, View dan Cont roller pada bagian – bagian dalam proyek.

  7 . 1 . 1 M ot iv a si

  Aplikasi apapun, bagian dalam kode yang sering m engalam i perubahan adalah bagian user int erface. User int erface adalah bagian yang paling t erlihat oleh user dan bagaim ana ia berint eraksi dengan aplikasi, m em buat nya m enj adi t it ik fokus pengubahan berdasar kem udahan penggunaan.

  Business- logic yang rum it pada user- int erface m em buat pengubahan pada user int erface m enj adi lebih kom pleks dan m udah t erj adi kesalahan. Perubahan pada sat u bagian m em ilik i pot ensi ket erkait an dengan keseluruhan aplikasi.

  7 . 1 . 2 Solu si

  Pola MVC m enyediakan sebuah solosi t erhadap perm asalahan t ersebut dengan m em bagi aplikasi m enj adi bagian – bagian t ersendiri, Model, View dan Cont roller, m em isahkan ant ar bagian t ersebut dan m em buat t at a int eraksi diant aranya.

  Diagram di at as m enunj ukkan 3 kom ponen yang t erdapat dalam pola MVC dan int eraksi yang t erj adi.

  7 .2 M OD EL

  Pola MVC m em iliki layer yang disebut dengan Model yang m erepresent asikan dat a yang digunakan oleh aplikasi sebagaim ana proses bisnis yang diasosiasikan t erhadapnya. Dengan m em ilahnya sebagai bagian t erpisah, sepert i penam pungan dat a, persist ence, sert a proses m anipulasi, t erpisah dari bagian lain aplikasi.

  Terdapat beberapa kelebihan dalam pendekat an ini. Per t am a, m em buat det ail dari dat a dan operasinya dapat dit em pat kan pada area yang dit ent ukan ( Model) dibanding t ersebar dalam keseluruhan lingkup aplikasi. Hal ini m em ber ikan keunt ungan dalam proses m aint enance aplikasi.

  Kedua, dengan pem isahan t ot al ant ara dat a dengan im plem ent asi int erface, kom ponen m odel dapat digunakan kem bali oleh aplikasi lain yang m em ilik i kegunaan yang ham pir sam a.

  7 .3 V I EW

  Layer ini m engandung keseluruhan det ail dari im plem ent asi user int erface. Disini, kom ponen grafis m enyediakan represent asi proses int ernal aplikasi dan m enunt un alur int eraksi user t erhadap aplikasi. Tidak ada layer lain yang berint eraksi dengan user, hanya View .

  Penggunaan layer View m em iliki beberapa kelebihan : Pert am a, m em udahkan pengabungan divisi desain dalam developm ent t eam . Divisi desain dapat berkonsent rasi pada st yle, look & feel, dan sebagainya, dalam aplikasi t anpa harus m em perhat ikan lebih pada det ail yang lain.

  Dan j uga, m em iliki layer View y ang t erpisah m em ungkinkan ket ersediaan m ult iple int erface dalam aplikasi. Jika int i dari aplikasi t erlet ak pada bagian lain ( dalam Model) , m ult iple int erfaces dapat dibuat ( Sw ing, Web, Console) , secara keseluruhan m em iliki t am pilan yang berbeda nam un m engeksekusi kom ponen Model sesuai fungsionalit as yang diharapkan.

  7 .4 CON TROLLER

  Terakhir, arsit ekt ur MVC m em ilik i layer Cont roller. Layer ini m enyediakan det ail alur program dan t ransisi layer, dan j uga bert anggungj aw ab akan penam pungan event s yang dibuat oleh user dari View dan m elakukan updat e t erhadap kom ponen Model m enggunakan dat a yang dim asukkan oleh user.

  Kelebihan dalam penggunaan layer Cont roller secara t erpisah : Pert am a, dengan m enggunakan kom ponen t erpisah unt uk m enam pung det ail dari t ransisi layer, kom ponen view dapat didesain t anpa harus m em perhat ikan bagian lain secara berlebih. Hal ini m em udahkan t eam pengem bang m ult iple int erface bekerj a secara t erpisah dari yang lain secara sim ult an. I nt eraksi ant ar kom ponen View t erabst raksi dalam Cont roller. Kedua, dengan m enggunakan layer t erpisah yang m elakukan updat e t erhadap kom ponen Model, det ail t ersebut dihapus dari layer present asi. Layer present asi kem bali pada fungsi ut am anya unt uk m enam pilkan dat a k epada user. Det ail t ent ang bagaim ana dat a dari user m engubah ket et apan aplikasi disem bunyikan oleh Cont roller. Hal ini m em isahkan dengan j elas ant ara present at ion logic dengan business logic.

  Tidak dapat disim pulkan bahwa pola MVC hadir dengan kelebihan – kelebihan t anpa ada efek sam ping. Pem bagian aplikasi dalam 3 bagian t erpisah m eningkat kan kom pleksivit as. Pada aplikasi kecil yang t idak m em but uhkan loose coupling pada Model, hal ini dapat m enj adi blok penghalang dalam penggunaan pola ini. Bagaim anapun, yang t erbaik adalah unt uk m eyakini bahwa sebuah aplikasi um um nya dim ulai dari aplikasi sederhana, dan berkem bang m enj adi sist em yang kom pleks., sehingga fact or loose coupling harus selalu diut am akan dan diperhat ikan.

  7 .5 Ar sit e k t u r M V C Un t u k W e b : Ar sit e k t u r M ode l 2

  Arst it ekt ur MVC secara sederhana dirancang dan diadapt asi dalam penggunaan dalam Web- Applicat ion. Arsit ekt ur yang dihasilkan kem udian disebut dengan Model 2

  Archit ect ure.

  Aplikasi Model 2 um um nya m em ilik i : o Servlet Cont roller yang m enyediakan akses t unggal t erhadap keseluruhan aplikasi. Cont roller ini bert anggungj aw ab m enyediakan m anaj em en t erpusat t erhadap alur aplikasi dan j uga service lain sepert i penganganan securit y dan user m anagem ent . o

  Cont roller Servlet um um nya m enggunakan konfigurasi XML unt uk m enent ukan alur aplik asi dan pem rosesan perint ah. Hal it u j uga m em buat helper com ponent s yang berfungsi sebagai Com m and obj ect s. Hal ini berart i helper com ponent s t erasosiasikan dengan user act ions dan dibuat / dipanggil unt uk m enangani act ions yang t erj adi, m em anggil kom ponen Model sebagaim ana diperlukan. Hal ini berfungsi unt uk m em isahkan unt uk m em isahkan ant ara cont roller serv let dari Model.

  7 .5 .1 M ode l 2 D ia gr a m

  I m plem ent asi sebuah pola dapat diperm udah dengan m enggunakan t hird- part y fram ework. Fram eworks t ersebut m enyediakan det ail t erkait ( request , konfigurasi, dan sebagainya) sehingga kit a dapat berkonsent ras pada hal lain yang lebih pent ing. Fram ew orks t ersebut j uga m enyediakan fungsi - fungsi t am bahan. Pada pem belaj aran ini, akan dibat asi pada dua fram ework yang popular, St rut s dab JavaServerFaces ( JSF) . St rut s akan dibahas pada bagian ini, sedangkan JSF pada bagian selanj ut nya.

  7 .5 .2 STRUTS St rut s adalah open- source fram ework yang dibuat oleh Apache Soft ware Foundat ion.

  Dibaw ah ini m enunj ukkan bagaim ana penanganan Model 2 Archit ect ure oleh St rut s.

  Perhat ikan obj ect yang disediakan oleh fram ework pada kom ponen Model, View dan Cont roller.

  Pusat dari im plem ent asi cont roller pada St rut s adalaha Act ion Se r vle t . Berfungsi sebagai Front Cont roller servlet dan m enyediakan j alur t unggal unt uk m engakses aplikasi. Act ionServlet j uga m engandung logic dalam penanganan request dari client

  7 .5 .3 CON TROLLER 7 .5 .3 .1 Act ion Se r vle t

  • – t erlihat pada HTTP request dari client , kem udian dit eruskan m enuj u sebuah halam an Web at au m engirim kan request t ersebut obj ect penerim a yang disebut dengan Act ion s yang kem udian bert anggungj aw ab unt uk m enent ukan respon yang akan dihasilkan. Act ionServlet m em iliki det ail – det ail sebagai berikut , Act ion apa yang akan dipanggil unt uk m enangani request , kom ponen view m ana yang akan dipanggil selanj ut nya – dengan m em baca konfigurasi XML, yang um unya bernam a st r u t s- config.x m l. Servlet ini m enyediakan st rut s fram ew ork yang siap digunakan. Secara keseluruhan pent ing unt uk m enyert akannya pada aplikasi sebagai konfigurasi pada deploym ent aplikasi. Berikut ini adalah pot ongan dari web.xm l yang m enunj ukkan konfigurasi Act ionServlet .

  ... <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> ... <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>

  7 .5 .3 .2 Act ion

  Sepert i yang t elah disebut kan sebelum nya, beberapa request dari client dit eruskan m enuj u Act ion yang sesuai oleh front cont roller servlet . Seluruh act ion obj ect s m endefinisikan sebuah m et hod yang disebut execut e( ) , dan m et hod inilah yang dipanggil oleh Act ionServlet unt uk m enangani request yang t erj adi.

  Akt ifit as um um dalam aplikasi w eb adalah user log- in. Dit unj ukkan di bawah ini adalah im plem ent asi dari LoginAct ion class yang berfungsi unt uk m enangani request t ersebut .

  import org.apache.struts.action.* public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // casting ActionForm LoginForm loginForm = (LoginForm)form; // Menampung data dari user. String loginName = form.getLoginName(); String password = form.getPassword(); // Membuat business object yang akan menangani request UserService service = new UserService(); user = service.login(loginName, password); // Jika user tidak ada, diteruskan pada error page if (user == null) { return mapping.findForward("failure"); } // Simpan pada session untuk digunakan pada proses aplikasi selanjutnya HttpSession session = request.getSession(); session.setAttribute(ApplicationConstants.USER_OBJECT, user); // User telah log-in dengan sukses. return mapping.findForward("success"); }

  }

  Perhat ikan bahwa im plem ent asi di at as m enggunakan sebuah business obj ect yang disebut dengan Use r Se r v ice , unt uk m enent ukan ot ent ifikasi user dan t idak m enyediakan im plem ent asi secara langsung pada m et hod eksekusinya. Act ion inst ances harus dibuat dengan alur sebagai berikut – fungsi ut am a harus di t eruskan kem bali pada business obj ect ( yang dapat dit em ukan pada bagian Model) , t idak diim plem ent asikan dalam Act ion it u sendiri. Proses yang akan dij alank an pada Act ion adalah sebagai berikut : o Menam pung inform asi user dari Act ionForm bean t erkait o Menerj em ahkan dat a dari form m enj adi param et er yang diperlukan oleh business obj ect yang m engim plem ent asikan fungsionalit asnya o Menam pung hasil operasi dari business obj ect dan m enent ukan View selanj ut nya yang akan dit am pilkan pada user o Secara opsional, m enyim pan dat a hasil dari operasi bisnis ke dalam session at au request obj ect s unt uk digunakan dalam proses aplikasi selanj ut nya

  Hal lain yang perlu diperhat ikan pada saat m em buat kode inst ances dari Act ion obj ect s adalah bahwa fram ework hanya akan m enginst ansiasi sat u salinan obj ect dan m enggunakannya unt uk m em fasilit asi seluruh request . Hal ini berart i kit a harus selalu m em buat kode Act ion dalam t hread- safe, dan m em ast ikan bahwa hanya local variabel yang digunakan, bukan inst ance variabel. Act ion inst ances berkem am puan unt uk m enginst ruksikan Act ionServlet dalam m em ilih kom ponen View m ana yang akan digunakan dalam m erespon dengan m engem balikan inst ances dari obj ek Act ion For w a r d. Act ions m em iliki akses t erhadap Act ionForward m elalui penggunaan Act ion M a ppin g yang m engenkapsulasi dat a dari pem et aan logical pat h pada set iap Act ion. Pem et aan t ersebut dibaca dari file konfigurasi oleh Act ionSer vlet , yang kem udian bert anggungj aw ab unt uk m eneruskan Act ionMapping pada Act ion yang sesuai. Sehingga m enginst ruksikan Act ionServlet unt uk m eneruskan pada logical m ap dengan hasil “ Success” , Act ion bekerj a sesuai pernyat aan berikut :

  return mapping.findForward("success");

  7 .5 .3 .3 Act ion For m St rut s fram ework m enyediakan sebuah class yang disebut dengan Act ionForm .

  I nst ances dari class ini digunakan unt uk m em fasilit asi penam pungan dat a yang berasal dari form yang dikum pulkan dari user pada Act ion inst ances yang m enangani event s pada form t ersebut . Tiap inst ances dari Act ionForm m erepresent asikan sebuah form at au rangkaian form s. I nst ances t ersebut m endefinisikan propert ies dar i elem en – elem en form , dan m em publik asikannya dengan m enggunakan get t ers dan set t ers yang dapat diakses secara public. Act ion yang m em erlukan dat a dari form kem udian m em anggil m et hod get t er dari inst ance Act ionForm . St rut s m enyert akan definisi class dasar; developer bert anggungj awab penuh at as im plem ent asi buat an m ereka sendiri.

  Kode dibawah m enunj ukkan Act ionForm yang digunakan pada cont oh sebelum nya :

  import org.apache.struts.action.*; public class LoginForm extends ActionForm { private String loginName; private String password; public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }

  }

  Beberapa hal yang perlu diingat pada saat pengkodean Act ionForm : o Mendefinisikan propert ies ( dengan asosiasi t erhadap m et hod get dan set ) unt uk t iap elem en yang akan direpresent asikan pada form o Hindari penem pat an business logic pada Act ionForm . Act ionForm dit uj ukan unt uk m ent ransfer dat a ant ara kom ponen View dan Cont roller, dan bukan dit uj ukan unt uk business logic. o Opsi lain, sert akan sebuah m et hod unt uk m em validasi dat a sebelum dit eruskan pada Act ion. Validasi ak an dibahas lebih m endalam selanj ut nya.

  7 .5 .3 .4 st r u t s- con fig.x m l

  File ini berfungsi sebagai file konfigurasi kom ponen – kom ponen yang t erdapat pada St rut s. Disini, kit a dapat m endefinisikan Act ion m ana yang akan dipanggil unt uk t iap request , form m ana yang akan digunakan pada t iap Act ion, dan m em et akan logical nam es pada act ual pat h, diant ara hal – hal lain. Berikut ini adalah pot ongan dari st rut s- config.xm l yang digunakan pada cont oh di at as :

  <?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=”login.LoginForm”/>

</form-beans> <action-mappings> <action name=”loginForm” path=”/login” scope=”request” type=”login.LoginAction”> <forward name=”success” path=”/success.jsp”/>

  <forward name=”failure” path=”/failure.jsp”/> </action> </action-mappings> </struts-config>

  Mari kit a bahas t iap elem en t ersebut . < ! DOCTYPE ...> Elem en ini m endefinisikan file XML sebagai file konfigurasi dalam penggunaan St rut s fram ework. Terlewat dan kesalahan dalam penulisan kode, akan m enghasilkan error pada saat aplikasi dij alankan.

  < st rut s- config> Elem en dasar dalam file konfigurasi. Seluruh elem en lain adalah elem en t urunan dari elem en ini.

  < form - beans> Elem en ini m enandai awal dan akhir definisi dar i Act ionForm inst ances. Elem en < form - bean> harus diposisikan sebagai t urunan dari elem en ini.

  < form - bean> Menj elaskan inst ance dari Act ionForm yang dapat digunakan oleh aplikasi. Elem en ini m em iliki dua at ribut : o nam e – nam a logik yang akan diasosiasikan dengan Act ionForm class o t ype – desripsi kualifikasi lengkap nam a class dari Act ionForm class

  < act ion- m appings> Elem en ini m enandai awal dan akhir definisi Act ion dan pem et aannya. Seluruh elem en < act ion> harus diposisikan sebagai t it ik t urunan dari elem en ini.

  < act ion> Menj elaskan inst ance dari Act ion obj ect yang akan digunakan oleh aplikasi. Secar a um um , elem en act ion akan m engim plem ent asikan at ribut - at ribut sebagai berikut : o pat h – cont ext relat iv e pat h yang digunakan oleh Act ion. Request apapun pada pat h ini m enghasilkan Act ion dipanggil o t ype – deskripsi lengkap nam a class dari Act ion class o nam e – nam a elem en < form - bean> yang akan digunakan oleh Act ion o scope – lingkup dim ana Act ionForm yang dapat diakses. Hal ini m engat ur dim ana Act ionServlet akan m enyim pan inst ance dari Act ionForm

  < forw ard> Elem en ini m endefinisikan pem et aan logik ant ara sebuah nam e dan pat h pada aplikasi.

  Elem en ini m em iliki at ribut sebagai berikut : o nam e – nam a dari elem en forward yang akan digunakan oleh Act ion inst ance o pat h – pat h dari kom ponen View yang akan diasosiasikan pada forward

  Hal – hal yang perlu dilakukan pada Cont roller layer : Unt uk sekali pengat uran : o Mengkonfigurasi Act ionServlet pada deploym ent aplikasi Unt uk t iap form handler yang akan dit am bahkan pada aplikasi : o

  Mem buat obj ect Act ionForm yang akan m enrepresent asikan seluruh dat a yang dikum pulkan dari form o Mem buat obj ect Act ion dim ana pada m et hod eksekusinya m enj elaskan bagaim ana form akan dit angani o Mengkonfigurasi obj ect Act ionForm dalam st rut s- config.xm l, pada bagian

  < form - beans> o Mengkonfigurasi obj ect Act ion dalam st rut s- config.xm l, pada bagian < act ion- m appings> o Mengkonfigurasi seluruh elem en forward yang akan digunakan oleh Act ion, dengan m enem pat kan < forward> pada badan definisi < act ion>

  7 .5 .4 M OD EL

  St rut s fram ework secara eksplisit t idak m enyediakan kom ponen apapun dalam elem en Model. Obj ect m ana yang akan digunakan sebagai kom ponen Model dit ent ukan sepenuhnya oleh developer, um um nya adalah JavaBeans, at au t erkadang EJB.

  7 .5 .5 V I EW

  St rut s dapat m enggunakan t eknologi present at ion layer apapun, w alaupun pada sebagian kasus yang present at ion layer yang digunakan adalah JSP dan HTML. Apa saj a yang disediakan oleh St rut s, adalah serangkaian dari t ag librar ies yang m engij inkan penggunaan fit ur – fit ur dari St rut s dalam pengum pulan dan validasi form secara ot om at is.

  7 .5 .5 .1 st r u t s- h t m l

  St rut s m enyert akan sebuah t ag- library, disebut dengan st rut s- ht m l, yang ham pir m enyerupai keseluruhan fungsionalit as st andar HTML, nam un dit am bahkan dengan beberapa fit ur t am bahan. Tag- library ini ser ing digunakan pada saat m em buat form yang akan dipakai oleh aplikasi. Perhat ikan cont oh dibaw ah ini :

  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <html> <head><title>Login Page</title></head> <body> <h1> Login Page </h1> <br/> <html:form action="/login">

User Name : <html:text property="loginName"/> <br/>

  

Password : <html:password property="password"/> <br/>

<html:submit> </html:form>

  I ni adalah form yang digunakan pada cont oh sebelum nya. Perhat ikan bagaim ana elem en st andar HTML sepert i < form > , < input t ype= “ t ext “ > , < input t ype= “ password“ > , sert a < input t ype= ” subm it ” > digant ikan oleh t ag dari library st rut s- ht m l. Mari kit a bahas t ags t ersebut sat u- persat u : < ht m l: form >

  Tag < ht m l: form > m enerj em ahkan sebuah HTML form . Tiap form t ag t erasosiasi dengan sebuah act ion m apping yang didefinisikan oleh at ribut a ct ion . Value dalam at ribut act ion m enspesifikasikan pat h dari act ion m apping yang sesuai. Perhat ikan kem bali file konfigurasi pada cont oh sebelum nya : ...

  <action name=”loginForm” path=”/login” scope=”request” type=”login.LoginAction”>

  ...

  Dapat kit a lihat bahw a value dari at ribut pat h t erdefinisi pada file konfigurasi sesuai dengan value at ribut act ion pada t ag < ht m l: form > . Hal ini m engindikasikan bahw a dalam form ini, saat diserahkan, akan dit eruskan pada LoginAct ion unt uk dit angani. Salah sat u dari persyarat an dari t ag ht m l: form yang valid adalah t iap field yang m engandungnya harus t ercant um pada Act ionForm unt uk dipet akan pada act ion m apping. Kem ungkinan at ribut lain : o m et hod – dapat berupa POST at au GET. Menj elaskan m et hod HTTP yang akan digunakan pada pengirim an form

  < ht m l: t ext > Tag ini m enerj em ahkan st andar HTML t ext input field. Propert y at t ribut e m enent ukan bat asan propert y dalam Act ionForm t erkait . Sebagai cont oh, value dari propert y at t ribut e dari cont oh di at as adalah “ loginNam e” , t ext field ini t erhubung dengan propert y loginNam e pada LoginForm .

  At ribut lain yang t ersedia pada t ag ini : o size – m endefinisikan ukuran dari t ext field yang akan dit am pilkan o m axlengt h – m enent ukan panj ang m aksim um value yang dapat dim asukkan oleh user

  < ht m l: passw ord> Tag ini m enerj em ahkan st andard HTML password field. Propert y at t ribut e dari t ag ini m enj elaskan bat asan propert y dalam Act ionForm yang berkait an. Dalam cont oh diat as, field ini dibat asi oleh password propert y pada LoginForm .

  Pada pem bahasan sebelum nya t ent ang ht m l: t ext dan ht m l: password field, dij elaskan bahwa t ag – t ag t ersebut dibat asi oleh propert ies pada Act ionForm yang t erhubung dengan form . Hal ini m enj elaskan bahw a pada prakt eknya value yang dim asukkan oleh user dalam field ini secara ot om at is akan diat ur sesuai bat asan propert ies dalam obj ect Act ionForm . Terlebih lagi, j ika t erdapat value sebelum nya dalam Act ionForm obj ect ( form t ersebut t elah diak ses sebelum nya) , field pada form secara ot om at is pula akan t erisi dengan values dari Act ionForm obj ect . Tag- t ag lain yang t erdapat pada st rut s- ht m l t ag library : < ht m l: hidden> Menerj em ahkan HTML hidden pada form field.

  Cont oh penggunaan :

  <html:hidden property="hiddenField"/>

  < ht m l: radio> Menerj em ahkan HTML radio check box. Cont oh penggunaan :

  <html:radio property="radioField”/>

  < ht m l: select > , < ht m l: opt ion> ht m l: select digunakan unt uk m enerj em ahkan sebuah drop- dow n list box. Pilihan – pilihan yang t erdapat pada list box didefinisikan m enggunakan t ag ht m l: opt ion. Cont oh penggunaan :

  <html:form action="/sampleFormAction"> <html:select property="selectField" size="5">

<html:option value="0 value">0 Label</html:option>

<html:option value="1 value">1 Label</html:option>

<html:option value="2 value">2 Label</html:option>

</html:select>

  </html:form> Cont oh di at as akan m em buat sebuah list box dengan 5 it em berukuran 5.

  Perhat ikan bahwa body dari ht m l: opt ion t ag berperan sebagai label dari it em pada list , sedangkan value dari value at t ribut e m enent ukan value yang akan diberikan pada Act ion.

  < ht m l: checkbox> , < ht m l: area> Digunakan unt uk m enerj em ahkan check box field dan t ext area. Sepert i yang t erlihat pada pem bahasan sebelum nya ( Advanced JSP) , t erdapat beberapa hal yang perlu dilakukan sebelum m em akai berm acam t ag libraries dalam aplikasi. Pert am a, let akkan file JAR im plem ent asi dari fungsionalit as t ag dalam direkt ori WEB- I NF/ lib dalam aplikasi.

  Beberapa hal yang harus dilakukan t erhadap layer View : Unt uk sat u kali pengat uran : o Konfigurasi t ag library yang akan digunakan dalam pengem bangan aplikasi o Tem pat kan file JAR y ang m em iliki im plem ent asi t ag libraries pada direkt ori

  WEB- I NF/ lib dalam aplik asi Unt uk set iap form yang akan dibuat : o Buat sebuah direkt ive t aglib pada halam an JSP unt uk m enggunakan st rut s- ht m l t ag library o Pada pelet akan st andar < form > t ag, gunakan < ht m l: form > , t ent ukan dalam act ion at t ribut e dari pat h Act ion yang akan m enangani form o Pada posisi pelet ak an HTML field t ags ( < input t ype= ” t ext ” > , dan sebagainya) , gunakan t ags yang t erdapat pada st rut s- ht m l t ag library yang m em iliki fungsi yang sam a ( < ht m l: t ext > , dan sebagainya) .

  ƒ Past ikan bahwa seluruh input fields yang t erdapat pada form t erdefinisi sebagai propert ies pada Act ionForm obj ect yang t erhubung dengan request . Tidaklah perlu bahwa seluruh propert ies pada obj ect dit am pilkan sebagai field, nam un dipersyarat kan bahwa seluruh fields j uga t erdefinisi sebagai propert ies. ƒ Menut up t ag < ht m l: form >

  7 .6 M EM AN D AN G H AL- H AL YAN G AD A SECARA KESELURUH AN

  Unt uk m em aham i bagaim ana St rut s fram ework berfungsi secara m enyeluruh, perhat ikan scenario yang t erdapat pada cont oh diat as : user logging. Sebelum seorang user m em asuki sit us, Act ionServlet m engam bil konfigurasi file dan m enelusuri det ail yang ada. Sehingga, pada saat user m engakses form login, fram ework t elah m enget ahui Act ionForm t erkait yang akan m enyim pan det ail dan Act ion yang akan m enanganinya. Saat halam an login dij alankan, st rut s ht m l t ags yang t elah digunakan berupaya unt uk m enerj em ahkan HTML fields. Jika Act ionForm unt uk form ini t idak ada, halam an t ersebut t idak akan dit am pilkan. Jika t erdapat fields dalam form yang m elebihi propert ies pada Act ionForm unt uk m enopangnya, halam an t ersebut j uga t idak akan dit am pilk an. Jika Act ionForm t ersebut m em ang t elah t erdefinisi sebelum nya, t ags – t ags yang ada akan dit am pilkan j ika t erdapat values sebelum nya yang t ersim pan dalam Act ionForm , dan j uga form fields akan dit am pilkan besert a dat a yang ada. Sebaliknya, form fields akan dibiarkan kosong dan user akan m em peroleh t am pilan form t anpa isian. Pada saat form diserahkan, values pada form fields secar a ot om at is diat ur ke dalam obj ect Act ionForm oleh St rut s Fram ework. Obj ect ini kem udian dit eruskan m enuj u Act ion handler yang sesuai, selam a Act ionMapping obj ect yang m erefleksikan det ail pem et aan t ercant um pada file konfigurasi. Act ion obj ect m em erankan penanganannya, kem udian m em beri t ahu Act ionServlet kem ana langkah selanj ut nya dengan m enent ukan salah sat u elem en forward yang t erkonfigurasi pada pem et aan/ m apping. Act ionServlet kem udian m eneruskan user m enuj u halam an yang dit ent ukan.