You are on page 1of 5

1. Scopul: Realizarea unei aplicatii cu ajutorul frameworkului Struts 2 care ar gestiona o baz de date a unei universiti. 2.

. Informatie : Struts2 este un cadru de dezvoltare a aplicaiilor bazat pe modelul MVC dezvoltat n cadrul proiectului apache. Struts2 utilizeaz att modelul declarative de aplicaie, prin intermediul unui fiier xml, de configurare, struts.xml, ct i modul programat prin adnotri. Instalarea produsului. De pe pagina web oficial se poate de downloadat toate jar-rurile necesare sau se poate de adugat cu ajutorul MAVEN-ului. Toate jarurile trebuie copiate in mapa lib i adugat n class-path-ul aplicaiei. Modelul descriptive este caracterizat print-un fiier de configurare struts.xml. Componentele unei aplicaii Struts2 sunt: Componenta View este alctuit din documente html sau pagini JSP, coninnd formulare prin care clientul introduce date i prin care se afieaz rezultate. Apelarea aplicaiiei Struts 2 se face la adresa: http://localhost/aplicatia/PaginaMea.action iar din interiorul aplicaiei prin MyAction.action Componenta Model este alctuit dintr-o clas ce extinde clasa Com.opensymphone.xwork2.ActionSupport Care implementeaz interfaa Action. Aceast interfa declar metoda public String execute() throws Exception Programatul ori suprascrie aceast metod ori indic metoda care ndeplinete activitile necesare satisfracerii cererii. Aceast metod se declar prin atributul method a elementului action din componenta Controller struts.xml. n ambele cazuri se returneaz un String fixat de clasa ResultNames: SUCCESS, ERROR, INPUT, LOGIN, NONE. Parametrilor preluai dintr-un formular li se ascociaz n componenta Java cmpuri private. Pentru fiecare asemenea cmp se definesc metodele set/get. Componenta Controller este reprezentat de fiierul de configurare struts.xml, plasat n catalogul WEB-INF/classes al aplicaiei Web. Prin datele acestui fiier se face asocierea dintre numele aciunii, clasa care implementeaz aciunea i fiierele cu rezultatele prelucrrilor.

Marcajele Struts Sunt definite ntr-o bibliotec care se declar ntr-o pagin JSP prin <%@ taglib prefix=s uri=/struts-tags %>

Nu este nevoie de specificarea lor n fiierul de configurare web.xml s:form Pentru marcarea formularului s:textfield Declar un cmp de introducere date de tip String. s:password Declar un cmp de introducere a parolei. s:submit Declar un buton de comand s:select ofer opiuni de selectare: o label, name, listKey, listValue s:hidden s:if s:else <s:if test=%{contor > 0}> Afiseaz <s:property value=%{contor+1} /> </s:if> <s:else> A doua ncercare </s:else> Marcajele Struts folosest limbajul Ojbect Graph Navigation Language (OGNL) care leag elementele grafice de control de obiecte; creaz dinami liste i tabele de proprieti pentru elemente grafice de control; ncarc metodele necesare rezolvrii cererii clientului; Realizaeaz conversia datelor din irul de caractere recepionat n tipurile Java (String, boolean/Boolean, int / Integer, long /Long, float / Float, double /Double, Date, List, Map, array).

La fiecare apelare Struts2 dar naintea executrii solicitrii cerute struts2 creaz un obiect ValueStack care conine ObjectStack stiva obiectelor i ContextMap cu atributele cererii, ale sesiunii, etc. Validarea de baz. Clasa ActionSuppoert implementeaz interfaa com.opensymphone.xworks2.Validatable cu metoda public void validate(), care permite realizarea de verificri asupra datelor ncrcate. Metoda void addFieldError(String numeCmp, String mesaj) afieaz mesajul pe ieirea ResultName.INPUT. n cazul clasei CMMDC.java completarea pentru verificarea completrii cmpurilor formularului este
Public void validate() { If(myField == ){ addFieldErro(myField, Cmp necompletat); }

Verificarea caracterului numeric al datelor convertite de Struts n tipuri numerice este fcut de OGNL. O facilitate interesant oferit de Struts este completarea automat a unei liste de opiuni. ncrcarea unui fiier Upload Pentru ncrcarea unui fiier, Struts2 ofer o soluie prefabricat, bazat pe produsul commonsfileupload de la apache. Aciunea partea de control poate fi
<action name=doUpload class=upload.UploadAction metod=upload> <result name=success>/jsp/ResultUpload.jsp</result> <result name=error>/jsp/ErrorUpload.jsp</result> </action> Componenta View este alctuit din Alegerea fiierului care se ncarc (Upload.jsp)

<%@ taglib prefix=s uri=/struts-tags %> <html> <head><title>Upload</title></head> <body> <h3>ncarc un fiier</h3> <s:form action=doUpload.action method=post enctype=multipart/form-data> <s:file name=myFile label=File /> <s:submit /> </s:form> </body> </html>

Commons-fileupload permite ncrcarea mai multor fiiere, fapt nefolosit n pagina JSP de mai sus. Furnizarea unui rspuns.

La ncrcarea unui fiier alturi de fiierul propriu-zis sunt preluate numele i tipul fiierului. ablonul de prelucrare este:
String dataDir = servletContext.getRealPath(/Web-INF/); File savedFile = new file(dataDir, myFileName); myFile.renameTo(savedFile);

unde myFile este numele cmpului din documentul JSP corespunztor fiierului care se ncarc. ncrcarea se face ntr-o zon de lucru al serverului Web, fiind tears la finalizarea aciunii. Este sarcina programatorului s preia fiierul savedFile n vederea prelucrrii / salvrii persistente. myFileName i myFile ContentType sunt completate de Struts cu numele i respectiv, tipul fiierului ncrcat. Interceptori Interceptorii sunt componente Struts2 care execut sarcini naintea sau dup procesarea unei cereri. Interceptorii fixeaz fluxul de prelucrare al unei aplicaii Struts2 i asigur realizarea de sarcini transversale (cross-cutting-tasks). Pachetul struts-default declar o familie de interceptori defaultStack necesar pentru ndeplinirea sarcinilor uzuale. O posibil utilizarea ar fi n cazul unui timer i logger ntr-o aplicaie Struts2. Rezultatele sunt vizibile n fereastra serverului Web. Aplicaia const dintr-o component Control definit intr-un xml.
<?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> <pachage name=primul extends=struts-default> <action name=MyAction class=exemplu.MyAction> <interceptor-ref name=time /> <interceptor-ref name=logger /> <interceptor-ref name=defaultStack /> <result> success.jsp</result> </action> </package> </struts>

Aplicaii Strusts2 prin modelul programat. Modelul programat se obine prin utilizarea adnotrilor. O aciune este denumit printr-un identificator, de exemplu xyz, Clasa corespunztoare va fi actions.XyzAction. Aceast clas conine metoda Public String execute(),

Care este invocat de Struts2 pentru ndeplinirea cererii clientului. String-ul returnat fixeaz componeta view n andontarea org.apache.struts2.convention.annotation.Resut. Cmpurile adnotrii sunt name, location, type, params. n cazul mai multor adnotri Return acestea se incud n adnotarea org.apache.struts2.convention.annotation.Results. Aceste resurse se gsesc n arhiva struts2-convention-lugin-*.jar.

3. Realizarea 4. Concluzie

You might also like