+ All Categories
Home > Documents > Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11....

Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11....

Date post: 27-Mar-2021
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
31
Java technol ´ ogi ´ ak 7. el ˝ oad ´ as A Struts keretrendszer ANTAL Margit Sapientia - EMTE 2010 ANTAL Margit Java technol ´ ogi ´ ak 7. el ˝ oad ´ as A Struts keretrendszer
Transcript
Page 1: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Java technologiak 7. eloadasA Struts keretrendszer

ANTAL Margit

Sapientia - EMTE

2010

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 2: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts keretrendszer

BevezetoStruts es az MVC tervezesi mintaStruts Action osztaly fejleszteseStruts Action konfiguralasa

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 3: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Miert jo hasznalni a Struts keretrendszert?

Egyszerusıti a webalkalmazasok tervezeset esimplementaciojat.Egyszeruen lehet tobbnyelvu webalkalmazasokatkeszıteni.A Struts tamogatja az MVC tervezesi mintat, tehatmegkonnyıti a komponensek elkulonıteset.A Struts az MVC-bol, a vezerles (Controller)retegetvalosıtja meg es a megjelenıtesi (View) reteget sajatelemkonyvtarral tamogatja. ⇒ MVC

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 4: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Struts keretrendszer helye

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 5: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

MVC Java webalkalmazasokban

M- modell vagy uzleti logika - POJO -Plain Old JavaObject, JavaBeansV- megjelenıtes (nezet) - fokepp JSP, de lehet szervletvagy barmi mas isC- vezerles- tipikusan egy szervlet, amely a keres alapjaneldonti, hogy mit kell elvegezni

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 6: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Front Controller tervezesi minta (1)

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 7: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Front Controller tervezesi minta (2)

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 8: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Front Controller tervezesi minta (3)

FeladatokLokalizaciot vegezhet.Azonosıtja az ugyfel tıpusat.Vezerli a felhasznalo navigaciojat a nezetek kozott.

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 9: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Struts infrastruktura

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 10: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A Struts keretrendszer elemei

A keretrendszer egy osztalyhalmaz, amely egy adottinfrastrukturat tamogat:

Vezerlo szervlet: ActionServlet (CONTROLLER)Alaposztalyok: Action, ActionForm (CONTROLLER)konfiguracios fajlok:struts-config.xml(CONTROLLER)Struts elemkonyvtarak (VIEW)

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 11: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts Action Servlet mukodesben

ActionServlet

Web szerver

Web konténer

service

serv

ice

service

AddCourseAction

Student2

Student1

Admin

ActionRegisterCourse

execute

execute

execu

te

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 12: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts keresfeldolgozas

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 13: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts Action osztaly

ActionMapping

findForward(name: String):ActionForward

Action {abstract}

execute( ActionMapping,

ActionForm,

HttpServletRequest,

HttpServletResponse)

:ActionForward

<<interface>>

<<interface>>

HttpServletRequest

HttpServletResponse

RegisterAction

execute(...):ActionForward

ActionForm

ActionForward

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 14: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Az execute metodus

ActionMapping: akcio tagActionForm: urlapbab – az urlap adatait taroljaHttpServletRequest: keresHttpServletRequest: valaszActionForward: melyik megjelenıtest kuldje vissza afelhasznalonak

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 15: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Pelda

AddDVD

AddDVDForm

add_dvd.jsp

AddDVDAction

CONTROLLERVIEW

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 16: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

ActionForm komponens

public class AddDVDForm extends ActionForm {private String title;private String yearStr;private String genre;

//get es set metodusok

public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {//Validacio

}}

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 17: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A validate metodus: title

ActionErrors errors=new ActionErrors();...//validate titleif(getTitle()==null||getTitle().length()<1){

errors.add("title",new ActionMessage("error.title.required"));

}...return errors;

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 18: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

A validate metodus: yearStr

//URESif(getYearStr()==null||getYearStr().length()<1){

errors.add("yearStr",new ActionMessage("error.yearStr.required"));

}if( getYearStr() != null ){

int year = -1;try{year = Integer.parseInt(yearStr);

}catch( NumberFormatException e ){//NEM NUMERIKUSerrors.add("yearStr",new ActionMessage("error.yearStr.invalidyear"));

}if( year != -1 && (year<0 || year>2050)){//HELYTELEN EVSZAMerrors.add("yearStr",new ActionMessage(

"error.yearStr.invalidyear"));}

}

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 19: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Mit tartalmaz a struts-config.xml?

<form-beans>...</form-beans> – urlap-babok<action-mappings>...</action-mappings>

<action><forward>

<message-resources .../> – eroforrasfajl

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 20: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Egyszeru akciolekepzes

<struts-config>...<action-mappings>

<action path="/listazas"forward="list_courses.jsp"/>

...</action-mappings>...

</struts-config>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 21: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Bonyolult akciolekepzes

<struts-config><form-beans><form-bean name="AddDVDForm"

type="view.AddDVDForm"/></form-beans>

<action-mappings><action path="/add_dvd"

input="/add_dvd.jsp"name="AddDVDForm" scope="request"validate="true"type="controller.AddDVDAction">

<forward name="success"path ="/success.jsp" />

<forward name="error"path ="/add_dvd.jsp" />

</action>

</action-mappings>...

</struts-config>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 22: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Hibak eroforrasfajl – ApplicationResource

#Add Course -- Ez egy megjegyzes sorerror.name.required=Hianyzo neverror.description.required=Hianyzo leiraserror.price.required=Hianyzo arerror.price.nonnumeric=Az ar nem szamerror.price.negative=Az ar nem pozitiv szam

#misc.menu.menuitem1=Listazas

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 23: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Automatikus urlapbab (Form-bean) ellenorzes

A bab validate metodusanak hıvasat jelentiAz automatikus ellenorzes a struts-config.xmlallomanyban kerheto ‘Ha nincs hiba, akkor hıvodik az execute metodusHiba eseteben a validate metodus visszaterıti ahibalistatA hibalista a MessageResource segıtsegevelnemzetkoziesıtheto, tehat e keresnek megfelelo nyelvenkerul vissza a bementi oldalraA kontroller szervlet a hibalistat lementi a kereshatokorebe, visszairanyıt a bemeneti oldalra es megjelenıtia hibakat <html:errors/> tag segıtsegevel.

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 24: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Hibauzenetek eroforrasfajl

Fajlendszerbeli helye:\WEB-INF\classes\resources\ApplicationResources.properties

Konfiguracio: struts-config.xml<message-resources

parameter="resources.ApplicationResources"/>

Tartalom:error.title.required=<li>Please enter a title.</li>

error.yearStr.required=<li>Please enter the year.</li>

error.yearStr.invalidyear=<li>Year must be a positive int</li>error.genre.required=<li>Please enter a genre.</li>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 25: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

AddDVDAction komponens I

public class AddDVDAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception

{ActionErrors errors=new ActionErrors();try{

AddDVDForm myform=(AddDVDForm)form;DvdItem item = new DvdItem(myform.getTitle(),myform.getYearStr(),myform.getGenre()

);

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 26: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

AddDVDAction komponens II

request.setAttribute("dvd", item);DVDLibraryDAO dao=new DVDLibraryDAO();dao.insert(item);

}catch(RuntimeException e){errors.add(ActionErrors.GLOBAL_ERROR,new ActionMessage("error.unexpectedError",e.getMessage()));

saveErrors(request, errors);}returnmapping.findForward("success");

}}

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 27: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts program mukodese

Ha a keres egy olyan lekepzesnek (mapping) felel meg, amelyegy urlapbabot (ActionForm) is tartalmaz, akkor:

A kozponti vezerloszervlet kinyeri vagy letrehozza azurlapbabotA kozponti vezerloszervlet tovabbadja ezt azakcioobjektumnak (Action)Ha a keres egy submit eredmenye, az urlapbabelvegezheti az adatok ellenorzeset

Megjegyzesek:Ha az adatok helyesek, tovabbıtodnak az uzleti retegnek.Ha az adatok helytelenek, visszakerulnek a beviteli urlapraa hibalistaval egyutt.Az ActionForm arra is hasznalhato, hogy az urlapotfeltoltsuk kezdoertekekkel.

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 28: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts elemkonyvtarak

logic<logic:present name="person"><bean:write name="person" property="firstName"/>...</logic:present>

html<html:form .../><html:text .../><html:submit .../>

bean<bean:define name="beanForm" id="beanForm"

type="app.struts.forms.TestSubmissionForm"/>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 29: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Struts html elemkonyvtar

form: HTML urlaptext: urlap szovegdobozradio:urlap radiogombsubmit: urlap Submit nyomogombimage: keplink: hiperlinkerrors: hibauzenetek megjelenıtese

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 30: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Urlap es urlapbab(ActionForm)

JSP szovegdoboz<input type="text" name="username"

value="<%= loginBean.getUsername()%>"/>

Struts html elemkonyvtarral<html:text property="username"/>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer

Page 31: Java technológiák 7. eloadás A Struts keretrendszermanyi/teaching/java/eloadas7.pdf · 2010. 11. 8. · Struts keretrendszer Bevezeto˝ Struts es az MVC tervez´ esi minta´ Struts

Nemzetkoziesıtes

ApplicationResources.propertiescourse.name=Namecourse.description=Descriptioncourse.price=Pricecourse.submit.step1=Page 2course.submit.step2=Page 3course.submit.finish=Finish

Hasznalat – JSP lap:

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

<form action="add_course.do" method="POST"><bean:message key="course.name"/><html:text property="name" size="50"/><input type=’submit’ value=

’<bean:message key="course.submit.step1"/>’/></form>

ANTAL Margit Java technologiak 7. eloadas A Struts keretrendszer


Recommended