Nézzük újra – Struts Action osztály

Struts Action Classes

Struts Action osztály

Bevezetés

Apache Struts egy nyílt forráskódú keretrendszer kidolgozására használt JSP vagy servlet alapú webes alkalmazás. Struts kiterjeszti a Java servlet API alapján, valamint az MVC vagy MVC tervezési mintát. Action Class Struts keretrendszer határozza meg az üzleti logika. Az akció osztály kezeli az ügyfél kérésére, és előkészíti a választ. Még azt is eldönti, ahol a választ kell továbbítani. Alapvetően egy akció osztály veszi az adatokat a megjelenítési réteg és továbbítja az adatokat a megfelelő üzleti réteg. Azt is feldolgozza az adatokat, amely származik az üzleti réteg, és továbbítja azokat vissza a megjelenítési réteg. Röviden, egy akció osztály van leírva, mint –

  • Action osztály kell terjeszteni [kód] apache.struts.action.Action [/kód] osztály.
  • Felülírják [kód] kivégez [/kód] módszere [kód] Akció [/kód] osztály.
  • A cselekvési Servlet kiválasztja a cselekvési osztály bejövő HTTP kérés alapján meghatározott cselekvési mapping tag a [kód] rugóstagok config.xml [/kód] fájl.
  • Ezek az osztályok előhívásához használt osztályok az üzleti réteg vagy adatelérési réteget, hogy az adatokat a bab és tárolja a feldolgozott adatokat, és visszatér az eredmény vagy a hiba helyzettől függően.
  • Ezek az osztályok több szálon. Ezért a fejlesztő, hogy legyen óvatos kezelése közben a kereset változó, mivel azok nem szál biztonságos.

A cselekvések típusai osztályok

Mi a következő típusú intézkedéseket osztályok rugóstagok –

  • Akció – Az intézkedés alapvető osztály, ahol végre kell hajtania az üzleti logika.
  • Tartalmazza Action – Hasonló, mint többek között az oldal irányelv jsp.
  • Előre Action – Használt, hogy szükség esetén továbbítja a kérelmet az egyik JSP egy másik. Ha közvetlenül továbbítja a kérést egy jsp sérti az MVC architektúra. Ezért egy akció osztály használják ezt a munkát.
  • Dispatch Action – Kezeli a több műveletet több módszer. Sokkal jobb, hogy van egy módszer egy művelet helyett összevonása a teljes üzleti logika egyetlen végre módszer kereset osztály.
  • Nézz fel Dispatch Action – Ugyanaz, mint a küldő akció, de nem ajánlott használni.
  • Switch Action – között lehet váltani a különböző modulok rugóstagok alkalmazás.

A leggyakrabban használt akció osztály –

  • Akció
  • Dispatch Action

Action osztály

Ez az alap akció osztály rugóstagok. Itt a fejlesztők számára, hogy felülbírálja az execute eljárás keretében -

[kód]

package com.home.upload.action ;

importál java.io.IOException ;

importál java.util.HashMap ;

importál java.util.Map ;

importál javax.servlet.ServletException ;

importál javax.servlet.http.HttpServletRequest ;

importál javax.servlet.http.HttpServletResponse ;

importál org.apache.log4j.Logger ;

importál org.apache.struts.action.Action ;

importál org.apache.struts.action.ActionForm ;

importál org.apache.struts.action.ActionForward ;

importál org.apache.struts.action.ActionMapping ;

importál org.apache.struts.upload.FormFile ;

importál com.home.upload.action.forms.UploadForm ;

importál com.home.upload.service.FileUploadService ;

importál com.home.upload.service.impl.FileUploadServiceImpl ;

importál com.home.upload.util.UploadConstants ;

/**

* @szerző TechAlpine

*/

nyilvános osztály FileUploadAction kiterjed Akció {

magán statikus Logger logger = Logger.getLogger(FileUploadAction.osztály);

nyilvános ActionForward végre(ActionMapping térképezés, ActionForm formában, HttpServletRequest kérelem,

HttpServletResponse válasz) throws IOException, ServletException {

ha (forma != nulla) {

Töltsd Forma feltölteni forma = (UploadForm) forma;

FormFile file1 = uploadForm.getFilePath1 ();

FormFile fájl2 = uploadForm.getFilePath2 ();

FormFile file3 = uploadForm.getFilePath3 ();

Térkép< Húr, byte[] > FileMap = új HashMap< Húr, byte[] > ();

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

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

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

FileUploadService uploadService = új FileUploadServiceImpl ();

ha (uploadService.doUpload (

getServlet().getServletContext().getRealPath(“/”).concat( UploadConstants.UPLOAD_FOLDER), FileMap )

.méret() > 0) {

logger.hibakeresés( “A feltöltés sikeres” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_SUCCESS);

} más {

logger.hibakeresés( ” Feltöltés sikertelen ” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_FAILURE);

}

}

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

}

}

[/kód]

A [kód] rugóstagok config.xml [/kód] fájl ehhez a művelethez osztályban kell lennie alatt -

[kód]

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

<!DOCTYPE rugóstagok-config NYILVÁNOS ” -//Apache Software Foundation // DTD Struts konfigurációs 1.1 // EN” “http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd”>

<rugóstagok-config>

<form-bab>

<form-bab name = “Bejelentkezési űrlap” type = “com.home.upload.action.forms.LoginForm” />

<form-bab name = “menü Form” type = “com.home.upload.action.forms.MenuForm” />

<form-bab name = “UploadForm” type = “com.home.upload.action.forms.UploadForm” />

</form-bab>

<globális előre- />

<akció-leképezések>

<akció path = “/Belépek” type = “com.home.upload.action.LoginAction” name = “Bejelentkezési űrlap” input = “/Login.jsp” >

<előre name = “success” path = “/menu.jsp” />

<előre name = “hiba” path = “/loginFailure.jsp” />

</akció>

<akció path = “/menuAction” type = “com.home.upload.action.MenuAction” name = “menü Form” input = “/menu.jsp” paraméter = “módszer” >

<előre name = “feltölt” path = “/fileUpload.jsp” />

<előre name = “listfiles” path =“/listUploadedFiles.jsp” />

</akció>

<akció path = “/uploadAction” type = “com.home.upload.action.FileUploadAction” name =“UploadForm” input =“/fileUpload.jsp” >

<előre name =“uploadSuccess” path =“/uploadSuccess.jsp” />

</akció>

</akció-leképezések>

<üzenet-források paraméter = “ApplicationResources” />

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

<set-tulajdonság tulajdonság = “pathnames”

value = “/WEB-INF / érvényesítő-rules.xml,/WEB-INF / validation.xml” />

</csatlakoztat>

</rugóstagok-config>

[/kód]

As we see in the above example that if the class extends the basic Action class it should override the [kód] kivégez [/kód] módszer. Also the struts config file has only one forward path corresponding to the [kód] uploadAction [/kód].

Dispatch Action

The dispatch action class also extends the basic action class. This class has an advantage over the action class that it does not has to explicitly override the execute method rather the developers are free to write their own methods. It enables the developers to use the same action classes for multiple flows. A classic example to use the dispatch action class in case of handling the menu operations as under –

[kód]

package com.home.upload.action ;

importál java.io.File ;

importál java.io.IOException ;

importál java.util.List ;

importál javax.servlet.ServletException ;

importál javax.servlet.http.HttpServletRequest ;

importál javax.servlet.http.HttpServletResponse ;

importál org.apache.log4j.Logger ;

importál org.apache.struts.action.ActionForm ;

importál org.apache.struts.action.ActionForward ;

importál org.apache.struts.action.ActionMapping ;

importál org.apache.struts.actions.DispatchAction ;

importál com.home.upload.action.forms.MenuForm ;

importál com.home.upload.service.FileUploadService ;

importál com.home.upload.service.impl.FileUploadServiceImpl ;

importál com.home.upload.util.UploadConstants ;

/**

* @szerző TechAlpine

*/

nyilvános osztály MenuAction kiterjed DispatchAction {

magán statikus Logger logger = Logger.getLogger( MenuAction.osztály );

nyilvános ActionForward upload( ActionMapping térképezés, ActionForm formában, HttpServletRequest kérelem,

HttpServletResponse válasz ) throws IOException, ServletException {

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

}

nyilvános ActionForward listFiles( ActionMapping térképezés, ActionForm formában, HttpServletRequest kérelem,

HttpServletResponse válasz ) throws IOException, ServletException {

FileUploadService uploadService = új FileUploadServiceImpl ();

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

MenuForm menuForm = (menü Form) forma;

ha ((új File( stagingLocation ) ).exists() ) {

Lista<Húr> fileNames = uploadService.getFileNames( stagingLocation );

ha (fileNames.size() > 0 ) {

menuForm.setFiles( fileNames );

menuForm.setListFlag ( UploadConstants.TRUE );

} más {

menuForm.setListFlag ( UploadConstants.FALSE );

}

} más {

menuForm.setListFlag( UploadConstants.FALSE );

}

logger.info( ” returning LIST “);

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

}

}

[/kód]

As we see here there are two methods which handle the request from the user. These two methods are defined in the [kód] rugóstagok config.xml [/kód] as under –

[kód]

<akció path = “/menuAction” type = “com.home.upload.action.MenuAction” name = “menü Form” input = “/menu.jsp” paraméter = “módszer” >

<előre name = “feltölt” path = “/fileUpload.jsp” />

<előre name = “listfiles” path = “/listUploadedFiles.jsp” />

</akció>

[/kód]

The two methods – upload and listfiles have two separate entries against the action class – MenuAction. Each of these methods has separate forward paths to which they would redirect the response to.

Következtetés

  • Struts is an open source framework used in java based web application.
  • Struts is based on the model view controller – MVC design pattern.
  • Struts has five different action classes of which the most commonly used are –
    • Akció
    • DispatchAction
  • Az Action osztály az alap osztály, amelyhez az összes intézkedés osztályokat kell terjeszteni a.
  • Osztályok meghosszabbításáról Action osztály felülírják végre módszer.
  • Osztályok meghosszabbításáról küldő akció osztály saját cselekvés előre módszerek.
  • Osztályok meghosszabbításáról küldő akció osztály lehet több akció előre módszerek így válik esetén hasznos több választható áramlások.

 

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