Idemo ponovno – Potpornji Akcija klase

Struts Action Classes

Potpornji Akcija klase

Uvođenje

Apache Struts je open source okvir koristi za razvoj JSP ili Servlet temelji web aplikaciju. Potpornji produžiti Java Servlet API i temelji se na kontroleru pogled modela ili MVC design pattern. Akcija Klasa u Struts okviru definira poslovnu logiku. Akcije razred obrađuje zahtjev klijenta, te priprema odgovor. On također odlučuje gdje je odgovor trebao biti proslijeđen. Uglavnom akcija klase prima podatke od prezentacijskog sloja i prosljeđuje podatke u odgovarajućem poslovnom sloju. Također se obrađuje podatke koji dolazi iz poslovnog sloja i prosljeđuje onima koji su ostali na prikazni sloj. In short, akcija klasa je opisana kao –

  • Akcija klasa treba proširiti [kod] apache.struts.action.Action [/kod] razred.
  • Pregaze [kod] izvršiti [/kod] Postupak je od [kod] Akcijski [/kod] razred.
  • Akcijski servlet odabire Akcijski klasu za dolazni HTTP zahtjev definiran u okviru akcije mapiranje oznake u [kod] potpornji config.xml [/kod] file.
  • Ove klase koriste se pozvati na nastavu u poslovnom sloju ili pristup podacima sloj kako bi dobili podatke iz grah i pohraniti obrađenih podataka i vratiti rezultat ili pogreška, ovisno o situaciji.
  • Ti razredi su multi-navojem. Dakle programer treba biti oprezan pri rukovanju akcijski varijablu jer nisu nit sigurna.

Vrste akcija klase

Imamo sljedeće vrste aktivnosti nastave u potpornji –

  • Akcijski – Osnovna akcija klase u kojoj smo provoditi našu poslovnu logiku.
  • Uključi Akcija – Slično kao što su stranice direktivu u JSP.
  • naprijed Akcija – Koristi se u slučaju da je potrebno proslijediti zahtjev s jednog na drugi JSP. Ako se izravno proslijediti zahtjev s jedne JSP krši MVC arhitekture. Dakle akcija klasa se koristi za raditi ovaj posao.
  • Otprema Akcija – Obrađuje više operacija u više metoda. To je bolje imati jednu metodu po operaciji, umjesto spajanja cijelu poslovnu logiku u jednom izvršiti metodom akcijskog klase.
  • Potražite dispečerski Akcija – Isto kao i otpreme akcije, ali preporuča se ne koristiti.
  • Prebaci Akcija – koristiti za prebacivanje između različitih modula na potpornjima prijavi.

Najčešće korišteni akcija klase –

  • Akcijski
  • Otprema Akcija

Akcija Klasa

To je baza akcija klase u potpornji. Ovdje programer treba nadjačati metoda izvršenja kao pod -

[kod]

package com.home.upload.action ;

uvoz java.io.IOException ;

uvoz java.util.HashMap ;

uvoz java.util.Map ;

uvoz javax.servlet.ServletException ;

uvoz javax.servlet.http.HttpServletRequest ;

uvoz javax.servlet.http.HttpServletResponse ;

uvoz org.apache.log4j.Logger ;

uvoz org.apache.struts.action.Action ;

uvoz org.apache.struts.action.ActionForm ;

uvoz org.apache.struts.action.ActionForward ;

uvoz org.apache.struts.action.ActionMapping ;

uvoz org.apache.struts.upload.FormFile ;

uvoz com.home.upload.action.forms.UploadForm ;

uvoz com.home.upload.service.FileUploadService ;

uvoz com.home.upload.service.impl.FileUploadServiceImpl ;

uvoz com.home.upload.util.UploadConstants ;

/**

* @Autor TechAlpine

*/

javni razred FileUploadAction proteže Akcijski {

privatan statički Drvosječa drvosječa = drvosječa.getLogger(FileUploadAction.razred);

javni ActionForward izvršiti(ActionMapping mapiranje, ActionForm obrazac, HttpServletRequest zahtjev,

HttpServletResponse odgovor) baca IOException, ServletException {

ako (oblik != nula) {

Postavi Obrazac upload formu = (UploadForm) oblik;

FormFile file1 = uploadForm.getFilePath1 ();

FormFile file2 = uploadForm.getFilePath2 ();

FormFile file3 = uploadForm.getFilePath3 ();

Map< Gudački, byte[] > fileMap = novi HashMap< Gudački, byte[] > ();

fileMap.put(file1.getFileName(), file1.getFileData());

fileMap.put(file2.getFileName(), file2.getFileData());

fileMap.put(file3.getFileName(), file3.getFileData());

FileUploadService uploadService = novi FileUploadServiceImpl ();

ako (uploadService.doUpload (

getServlet().getServletContext().getRealPath(“/”).CONCAT( UploadConstants.UPLOAD_FOLDER), fileMap )

.veličina() > 0) {

drvosječa.otkloniti neispravnost( “Postavi je uspješna” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_SUCCESS);

} drugo {

drvosječa.otkloniti neispravnost( ” Prijenos nije uspio ” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_FAILURE);

}

}

return (mapping.findForward(UploadConstants.UPLOAD_SUCCESS));

}

}

[/kod]

The [kod] potpornji config.xml [/kod] datoteka za ovoj akciji razred bi trebao biti kao pod -

[kod]

<?xml version = “1.0” kodiranja = “ISO-8859-1” ?>

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

<potpornji-config>

<Obrazac-graha>

<Naziv oblik-grah = “LoginForm” type = “com.home.upload.action.forms.LoginForm” />

<Naziv oblik-grah = “Obrazac izbornik” type = “com.home.upload.action.forms.MenuForm” />

<Naziv oblik-grah = “UploadForm” type = “com.home.upload.action.forms.UploadForm” />

</Obrazac-graha>

<globalno-naprijed />

<Akcija-preslikavanja>

<akcija path = “/prijaviti se” type = “com.home.upload.action.LoginAction” name = “LoginForm” ulaz = “/login.jsp” >

<naprijed name = “success” put = “/menu.jsp” />

<naprijed name = “neuspjeh” put = “/loginFailure.jsp” />

</action>

<akcija path = “/menuAction” type = “com.home.upload.action.MenuAction” name = “Obrazac izbornik” ulaz = “/menu.jsp” parametar = “način” >

<naprijed name = “upload” put = “/fileUpload.jsp” />

<naprijed name = “listfiles” put =“/listUploadedFiles.jsp” />

</action>

<akcija path = “/uploadAction” type = “com.home.upload.action.FileUploadAction” name =“UploadForm” ulaz =“/fileUpload.jsp” >

<naprijed name =“uploadSuccess” put =“/uploadSuccess.jsp” />

</action>

</Akcija-preslikavanja>

<poruka-resursi parametar = “ApplicationResources” />

<plug-in className = “org.apache.struts.validator.ValidatorPlugIn” >

<Objekt set-objekt = “pathnames”

vrijednost = “/WEB-INF / validator-rules.xml,/WEB-INF / validation.xml” />

</uključiti>

</potpornji-config>

[/kod]

Kao što smo vidjeli u gornjem primjeru da ako klasni proteže osnovnu Akcijski razred je pregaze [kod] izvršiti [/kod] način. Također, potpornji config file ima samo jedan naprijed put koji odgovara [kod] uploadAction [/kod].

Otprema Akcija

Otpreme akcija razred također proširuje osnovne akcijski razred. Ova klasa ima prednost u odnosu na akciji klase koja ne mora izričito nadjačati izvrši metodu, a programeri su slobodni da napišu svoje vlastite metode. Ona omogućuje programerima da koriste iste akcijske nastavu za više tokova. Klasičan primjer za korištenje otpreme akcija klase u slučaju rukovanje funkcije izbornika kao pod -

[kod]

package com.home.upload.action ;

uvoz java.io.File ;

uvoz java.io.IOException ;

uvoz java.util.List ;

uvoz javax.servlet.ServletException ;

uvoz javax.servlet.http.HttpServletRequest ;

uvoz javax.servlet.http.HttpServletResponse ;

uvoz org.apache.log4j.Logger ;

uvoz org.apache.struts.action.ActionForm ;

uvoz org.apache.struts.action.ActionForward ;

uvoz org.apache.struts.action.ActionMapping ;

uvoz org.apache.struts.actions.DispatchAction ;

uvoz com.home.upload.action.forms.MenuForm ;

uvoz com.home.upload.service.FileUploadService ;

uvoz com.home.upload.service.impl.FileUploadServiceImpl ;

uvoz com.home.upload.util.UploadConstants ;

/**

* @Autor TechAlpine

*/

javni razred MenuAction proteže DispatchAction {

privatan statički Drvosječa drvosječa = drvosječa.getLogger( MenuAction.razred );

javni ActionForward upload( ActionMapping mapiranje, ActionForm obrazac, HttpServletRequest zahtjev,

HttpServletResponse odgovor ) baca IOException, ServletException {

return ( mapping.findForward ( UploadConstants.PRIJENOS ) );

}

javni ActionForward listFiles( ActionMapping mapiranje, ActionForm obrazac, HttpServletRequest zahtjev,

HttpServletResponse odgovor ) baca IOException, ServletException {

FileUploadService uploadService = novi FileUploadServiceImpl ();

String stagingLocation = getServlet().getServletContext().getRealPath( “/” ). CONCAT( UploadConstants.UPLOAD_FOLDER );

Meni obrazac Obrazac izbornik = (Obrazac izbornik) oblik;

ako ((novi Datoteka( stagingLocation ) ).postoji() ) {

Popis<Gudački> Nazivi datoteka = uploadService.getFileNames( stagingLocation );

ako (fileNames.size() > 0 ) {

menuForm.setFiles( Nazivi datoteka );

menuForm.setListFlag ( UploadConstants.PRAVI );

} drugo {

menuForm.setListFlag ( UploadConstants.FALSE );

}

} drugo {

menuForm.setListFlag( UploadConstants.FALSE );

}

drvosječa.info( ” povratak POPIS “);

return (mapping.findForward(UploadConstants.LIST_UPLOADED_FILES));

}

}

[/kod]

Kao što vidimo ovdje postoje dvije metode koje obrađuju zahtjev od korisnika. Ove dvije metode definirane u [kod] potpornji config.xml [/kod] kao pod -

[kod]

<akcija path = “/menuAction” type = “com.home.upload.action.MenuAction” name = “Obrazac izbornik” ulaz = “/menu.jsp” parametar = “način” >

<naprijed name = “upload” put = “/fileUpload.jsp” />

<naprijed name = “listfiles” put = “/listUploadedFiles.jsp” />

</action>

[/kod]

Dvije metode – upload i listfiles imaju dvije odvojene unose protiv akcija klase – MenuAction. Svaki od ovih načina ima odvojene naprijed putove kojima bi se preusmjeriti odgovor na.

Zaključak

  • Potpornji je open source okvir korišten u Java based web aplikacija.
  • Podupirači se temelji na upravljaču pogled modela – MVC design pattern.
  • Potpornji ima pet različitih akcija klase od kojih je najčešće koriste –
    • Akcijski
    • DispatchAction
  • Akcijski klasa je osnovna klasa u koju su svi akcijski klase treba proširiti na.
  • Nastava produljenje klasa akcija treba nadjačati metoda izvršenja.
  • Nastava produljenje otpreme akcija klase imaju svoje vlastite akcijske naprijed metode.
  • Nastava produljenje otpreme akcijski razred može imati više akcije naprijed metoda čime je postao koristan u slučaju više izbornih tokova.

 

Tagged on:
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share