Եկեք վերանայի – Struts Գործողությունների Դասեր

Struts Action Classes

Struts Գործողությունների Դասեր

Ներածություն

Apache Struts բաց աղբյուր շրջանակը, որն օգտագործվում է զարգացնել jsp կամ servlet հիմնված վեբ դիմումը. Struts երկարաձգել Java servlet API- ը եւ հիմնված է մոդելային տեսակետը վերահսկիչ կամ MVC դիզայնի օրինակին. Action Class է Struts շրջանակներում սահմանում է բիզնես տրամաբանությունը. An ակցիան դասի բռնակներ հաճախորդների խնդրանքը եւ պատրաստում պատասխանը. Այն նաեւ որոշում, որտեղ պատասխանը պետք է ուղարկվի. Հիմնականում գործողություն դասի ստանում տվյալների ներկայացման շերտի եւ Հարձակվողներ տվյալները համապատասխան գործարար շերտի. Այն նաեւ գործընթացների տվյալները, որոնք գալիս են բիզնեսի շերտի եւ Հարձակվողներ, ովքեր ետ ներկայացման շերտի. In short, մի գործողություն դասը նկարագրվում է որպես –

  • Action դասը պետք է տարածվի [համար] apache.struts.action.Action [/համար] դաս.
  • Պետք է անտեսեն [համար] կատարել [/համար] մեթոդը [համար] գործողություն [/համար] դաս.
  • Գործողությունների Servlet ընտրում գործողությունների դաս մուտքային http հարցման սահմանված տակ ակցիան քարտեզագրման թեգով է [համար] struts config.xml [/համար] ֆայլ.
  • Այդ դասարանները օգտագործվում են վկայակոչել դասեր է բիզնես շերտի կամ տվյալների հասանելիության շերտի ստանալ տվյալներ Bean եւ խանութ վերամշակված տվյալները եւ վերադարձնել արդյունքը կամ սխալը կախված է իրավիճակից.
  • Այս դասընթացները կարող են բազմաբնակարան ակոսավոր. Հետեւաբար մշակողի պետք է զգույշ լինել, իսկ բեռնաթափման գործողությունների փոփոխականի, քանի որ նրանք չեն շարանը անվտանգ.

Տեսակները գործողությունների դասերի

Մենք գտանք հետեւյալ տեսակների գծով գործողությունների դասերի մույթերի –

  • գործողություն – Հիմնական ակցիան դասը, որը մենք իրականացնում ենք մեր բիզնես տրամաբանություն.
  • Ներառել Action – Նմանատիպ քանի որ ընդգրկում է էջի Հրահանգը JSP.
  • Փոխանցել Action – Օգտագործված դեպքում մենք պետք է փոխանցելու խնդրանքը մեկ JSP մյուսը. Եթե ​​մենք ուղղակիորեն փոխանցելու խնդրանքը մեկ JSP դա խախտում է MVC ճարտարապետությունը. Հետեւաբար մի գործողություն դասը, որն օգտագործվում է անել այս գործը.
  • Dispatch Action – Բռնակներ բազմակի գործողություններին բազմաթիվ մեթոդներ. Դա ավելի լավ է ունենալ մեկ մեթոդ Մեկ գործողության փոխարեն միաձուլման ամբողջ բիզնես տրամաբանությունը է մեկ կատարել մեթոդի գործողությունների դասի.
  • Նայեք մինչեւ դիսպետչերական Action – Նույնն է, ինչպես դիսպետչերական գործողություն, սակայն խորհուրդ է տրվում ոչ թե օգտագործել.
  • Switch Action – օգտագործվում է անցնել միջեւ տարբեր մոդուլների struts կիրառման.

Առավել հաճախ օգտագործվում ակցիան դասեր են –

  • գործողություն
  • Dispatch Action

Action Class

Սա բազան ակցիան դաս մույթերի. Այստեղ ծրագրավորողը պետք է անտեսեն մահապատժի մեթոդը, ինչպես տակ -

[համար]

package com.home.upload.action ;

ներմուծում java.io.IOException ;

ներմուծում java.util.HashMap ;

ներմուծում java.util.Map ;

ներմուծում javax.servlet.ServletException ;

ներմուծում javax.servlet.http.HttpServletRequest ;

ներմուծում javax.servlet.http.HttpServletResponse ;

ներմուծում org.apache.log4j.Logger ;

ներմուծում org.apache.struts.action.Action ;

ներմուծում org.apache.struts.action.ActionForm ;

ներմուծում org.apache.struts.action.ActionForward ;

ներմուծում org.apache.struts.action.ActionMapping ;

ներմուծում org.apache.struts.upload.FormFile ;

ներմուծում com.home.upload.action.forms.UploadForm ;

ներմուծում com.home.upload.service.FileUploadService ;

ներմուծում com.home.upload.service.impl.FileUploadServiceImpl ;

ներմուծում com.home.upload.util.UploadConstants ;

/**

* @author TechAlpine

*/

հասարակություն դաս FileUploadAction տարածվում գործողություն {

մասնավոր ստատիկ անտառահատ անտառահատ = անտառահատ.getLogger(FileUploadAction.դաս);

հասարակություն ActionForward մահապատժի(ActionMapping քարտեզագրում, ActionForm ձեւ, HttpServletRequest խնդրանքը,

HttpServletResponse պատասխանը) նետում IOException, ServletException {

եթե (տեսակ != զրո) {

Վերբեռնել Ձեւ վերբեռնել ձեւը = (UploadForm) տեսակ;

FormFile file1 = uploadForm.getFilePath1 ();

FormFile file2 = uploadForm.getFilePath2 ();

FormFile file3 = uploadForm.getFilePath3 ();

Քարտեզ< Լար, byte[] > fileMap = նոր HashMap< Լար, byte[] > ();

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

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

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

FileUploadService uploadService = նոր FileUploadServiceImpl ();

եթե (uploadService.doUpload (

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

.չափ() > 0) {

անտառահատ.վրիպազերծման( “Վերբեռնել տարիներ շարունակ” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_SUCCESS);

} else {

անտառահատ.վրիպազերծման( ” upload ձախողվեց ” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_FAILURE);

}

}

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

}

}

[/համար]

The [համար] struts config.xml [/համար] ֆայլի այս գործողությունների դասի պետք է, քանի որ մինչեւ

[համար]

<?XML Ծանոթություններ = “1.0” կոդավորում = “ISO-8859-1-” ?>

<!DOCTYPE struts-config ՀԱՆՐԱՅԻՆ ” -//Apache Software Foundation // DTD Struts Կազմաձեւման 1.1 // EN” “HTTP://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd”>

<struts-config>

<Form-լոբի>

<ձեւը-լոբի name = “LoginForm” type = “com.home.upload.action.forms.LoginForm” />

<ձեւը-լոբի name = “մենյու ձեւ” type = “com.home.upload.action.forms.MenuForm” />

<ձեւը-լոբի name = “UploadForm” type = “com.home.upload.action.forms.UploadForm” />

</Form-լոբի>

<գլոբալ Հարձակվողներ />

<Ակցիայի-արտապատկերումները>

<ակցիան ուղին = “/լոգին” type = “com.home.upload.action.LoginAction” name = “LoginForm” մուտքագրում = “/login.jsp” >

<Փոխանցել name = “success” Ճանապարհ = “/menu.jsp” />

<Փոխանցել name = “անհաջողություն” Ճանապարհ = “/loginFailure.jsp” />

</action>

<ակցիան ուղին = “/menuAction” type = “com.home.upload.action.MenuAction” name = “մենյու ձեւ” մուտքագրում = “/menu.jsp” պարամետր = “մեթոդ” >

<Փոխանցել name = “վերբեռնել” Ճանապարհ = “/fileUpload.jsp” />

<Փոխանցել name = “listfiles” Ճանապարհ =“/listUploadedFiles.jsp” />

</action>

<ակցիան ուղին = “/uploadAction” type = “com.home.upload.action.FileUploadAction” name =“UploadForm” մուտքագրում =“/fileUpload.jsp” >

<Փոխանցել name =“uploadSuccess” Ճանապարհ =“/uploadSuccess.jsp” />

</action>

</Ակցիայի-արտապատկերումները>

<Հաղորդագրության ռեսուրսներ պարամետր = “ApplicationResources” />

<plug-in դասԱնուն = “org.apache.struts.validator.ValidatorPlugIn” >

<սահմանել գույքային գույքը = “pathnames”

value = “/WEB-INF / Validator-rules.xml,/WEB-INF / validation.xml” />

</միացնել>

</struts-config>

[/համար]

Քանի որ մենք տեսնում ենք, որ վերը նշված, օրինակ, որ եթե այդ դասը տարածվում է հիմնական գործողությունների դաս, այն պետք է անտեսեն այն [համար] կատարել [/համար] մեթոդ. Նաեւ struts config ֆայլը ունի միայն մեկ հարձակվող ուղին համապատասխան է [համար] uploadAction [/համար].

Dispatch Action

The գավառի ակցիան դասը նաեւ ընդլայնում է հիմնական գործողությունների դաս. Այս դասի ունի առավելություն է գործողությունների դասի, որ այն չի ստիպված է հստակորեն անտեսեն կատարել մեթոդը ավելի շուտ մշակողները կարող են գրել իրենց սեփական մեթոդները. Այն հնարավորություն է տալիս ծրագրավորողներին օգտագործել նույն գործողությունների դասեր բազմակի հոսքերի. Դասական օրինակ է օգտագործել դիսպետչերական գործողությունների դաս դեպքում բեռնաթափման ցանկի գործողություններին տակ -

[համար]

package com.home.upload.action ;

ներմուծում java.io.File ;

ներմուծում java.io.IOException ;

ներմուծում java.util.List ;

ներմուծում javax.servlet.ServletException ;

ներմուծում javax.servlet.http.HttpServletRequest ;

ներմուծում javax.servlet.http.HttpServletResponse ;

ներմուծում org.apache.log4j.Logger ;

ներմուծում org.apache.struts.action.ActionForm ;

ներմուծում org.apache.struts.action.ActionForward ;

ներմուծում org.apache.struts.action.ActionMapping ;

ներմուծում org.apache.struts.actions.DispatchAction ;

ներմուծում com.home.upload.action.forms.MenuForm ;

ներմուծում com.home.upload.service.FileUploadService ;

ներմուծում com.home.upload.service.impl.FileUploadServiceImpl ;

ներմուծում com.home.upload.util.UploadConstants ;

/**

* @author TechAlpine

*/

հասարակություն դաս MenuAction տարածվում DispatchAction {

մասնավոր ստատիկ անտառահատ անտառահատ = անտառահատ.getLogger( MenuAction.դաս );

հասարակություն ActionForward վերբեռնում( ActionMapping քարտեզագրում, ActionForm ձեւ, HttpServletRequest խնդրանքը,

HttpServletResponse պատասխանը ) նետում IOException, ServletException {

return ( mapping.findForward ( UploadConstants.ՎԵՐԲԵՌՆԵԼ ) );

}

հասարակություն ActionForward listFiles( ActionMapping քարտեզագրում, ActionForm ձեւ, HttpServletRequest խնդրանքը,

HttpServletResponse պատասխանը ) նետում IOException, ServletException {

FileUploadService uploadService = նոր FileUploadServiceImpl ();

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

Մենյու Ձեւ մենյու ձեւ = (մենյու ձեւ) տեսակ;

եթե ((նոր Ֆայլ( stagingLocation ) ).գոյություն ունի() ) {

Ցուցակ<Լար> filenames = uploadService.getFileNames( stagingLocation );

եթե (fileNames.size() > 0 ) {

menuForm.setFiles( filenames );

menuForm.setListFlag ( UploadConstants.ՃԻՇՏ );

} else {

menuForm.setListFlag ( UploadConstants.ԿԵՂԾ );

}

} else {

menuForm.setListFlag( UploadConstants.ԿԵՂԾ );

}

անտառահատ.Մանրամասն( ” վերադառնալով ՑՈՒՑԱԿԸ “);

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

}

}

[/համար]

Ինչպես տեսնում ենք, այստեղ կան երկու մեթոդներ, որոնք կարգավորել հարցումը Օգտվողի մասին. Այս երկու մեթոդները սահմանվում է [համար] struts config.xml [/համար] քանի որ մինչեւ

[համար]

<ակցիան ուղին = “/menuAction” type = “com.home.upload.action.MenuAction” name = “մենյու ձեւ” մուտքագրում = “/menu.jsp” պարամետր = “մեթոդ” >

<Փոխանցել name = “վերբեռնել” Ճանապարհ = “/fileUpload.jsp” />

<Փոխանցել name = “listfiles” Ճանապարհ = “/listUploadedFiles.jsp” />

</action>

[/համար]

Այս երկու մեթոդները – վերբեռնել եւ listfiles ունեն երկու առանձին գրառում դեմ գործողության դասի – MenuAction. Յուրաքանչյուր այդ մեթոդների ունի առանձին ֆորվարդային ուղիներ, որոնք նրանք պետք է վերահղման պատասխան.

Ամփոփում

  • Struts բաց աղբյուր շրջանակը, որն օգտագործվում է Java հիմնված վեբ.
  • Struts հիմնված է մոդելային դիտել վերահսկիչ – MVC դիզայն օրինակը.
  • Struts ունի հինգ տարբեր գործողությունների դասեր, որոնցից առավել հաճախ օգտագործվում են –
    • գործողություն
    • DispatchAction
  • Գործողությունների դասը բազային դասի, որի բոլոր գործողությունները դասեր պետք է տարածվի.
  • Դասեր ընդլայնում Գործողությունների դաս պետք է անտեսեն այն մահապատժի մեթոդը.
  • Դասեր ընդլայնում դիսպետչերական գործողությունների դաս ունեն իրենց սեփական գործողությունների Փոխանցել մեթոդները.
  • Դասեր ընդլայնում դիսպետչերական գործողությունների դաս կարող է ունենալ բազմաթիվ գործողությունների ֆորվարդային մեթոդներ դառնալով օգտակար դեպքում բազմաթիվ ընտրովի հոսքերի.

 

Tagged on:
============================================= ============================================== Գնեք լավագույն տեխնոլոգիական գրքերը Amazon- ում,en,Էլեկտրականություն CT շագանակագույն էլեկտրաէներգիա,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share