בואו לבקר – חוגי פעולה תמוכה

Struts Action Classes

חוגי פעולה תמוכה

מבוא

תמוכות Apache היא מסגרת קוד פתוח לשמש לפיתוח JSP או יישום מבוסס אינטרנט servlet. תמוך להארכת API servlet Java ובהתבסס על בקר המודל להציג או תבנית עיצוב MVC. מח' פעולה במסגרת תמוכות מגדירה את הלוגיקה העסקית. בכיתת פעולה מטפלת בקשת הלקוח ומכינה את התגובה. כמו כן מחליט לאן התגובה צריכה להיות מועברת. בעיקרון בכיתת פעולה מקבלת נתונים מהשכבת המצגת ומעבירה את נתוני השכבה העסקית המתאימה. זה גם מעבד את הנתונים אשר באו מן השכבה העסקית ומעביר אותם בחזרה אל שכבת המצגת. In short, בכיתת פעולה מתוארת –

  • תביעה ייצוגית צריכים להאריך [קוד] apache.struts.action.Action [/קוד] מעמד.
  • צריך לעקוף את [קוד] לבצע [/קוד] שיטה של [קוד] פעולה [/קוד] מעמד.
  • Servlet הפעולה בוחר כיתת הפעולה עבור בקשת HTTP נכנסת מוגדרת תחת תג מיפוי פעולה [קוד] config.xml תמוך [/קוד] קובץ.
  • שיעורים אלה משמשים כדי לעורר את הכיתות בכל שכבת גישה לנתוני שכבה או עסק כדי לקבל את הנתונים מן הקטניות לאחסן את הנתונים מעובדים ולהחזיר את התוצאה או שגיאה בהתאם למצב.
  • שיעורים אלה הם ריבוי הליכים. לפיכך מפתח יש להיזהר בזמן הטיפול משתנה פעולה כפי שהם אינם חוט בטוח.

סוגי שיעורי פעולה

יש לנו באות סוגי שיעורי פעולה תמוכות –

  • פעולה – כיתת הפעולה הבסיסית שבה אנו ליישם לוגיקה העסקית שלנו.
  • כלול פעולה – דומה כמו לכלול הוראת דף JSP.
  • פעולת העברה – משמש למקרה שנצטרך להעביר את הבקשה מאחד JSP למשנהו. אם אנחנו ישירות להעביר את הבקשה מן JSP אחד שהוא מפר את ארכיטקטורת MVC. לפיכך בכיתת פעולה משמשת לעשות את העבודה הזאת.
  • פעולה שדר – ידיות פעולות מרובות בשיטות מרובות. זה עדיף לך שיטה אחת פעולה במקום המתמזג את הלוגיקה העסקית כולה שיטה לבצע אחת של מעמד פעולה.
  • חפש שדר פעולה – זהה פעולת שיגור אבל מומלץ לא להשתמש.
  • פעולת חלף – נהג לעבור בין מודולים שונים ביישום תמוך.

ברוב המקרים כיתות פעולה בהם נעשה שימוש הם –

  • פעולה
  • פעולה שדר

תובענות ייצוגיות

זהו מעמד פעולת בסיס תמוך. הנה היזם צריך לעקוף את לבצע שיטה כמו תחת -

[קוד]

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 ;

/**

* @מְחַבֵּר TechAlpine

*/

ציבורי מעמד FileUploadAction מרחיב פעולה {

פרטי סטטי כּוֹרֵת עֵצִים כּוֹרֵת עֵצִים = לוגר.getLogger(FileUploadAction.מעמד);

ציבורי ActionForward לבצע(מיפוי ActionMapping, טופס ActionForm, בקשת HttpServletRequest,

בתגובה HttpServletResponse) throws 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);

} אַחֵר {

כּוֹרֵת עֵצִים.לְנַפּוֹת( ” העלאה נכשלה ” );

uploadForm.setUploadFlag(UploadConstants.UPLOAD_FAILURE);

}

}

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

}

}

[/קוד]

The [קוד] config.xml תמוך [/קוד] להגיש לשיעור פעולה זו צריכה להיות כמו תחת -

[קוד]

<?xml version = “1.0” קידוד = “ISO-8859-1” ?>

<!תמוכות-config DOCTYPE PUBLIC ” -//קרן התוכנה אפאצ'י // DTD תמוכות תצורת 1.1 // EN” “http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd”>

<תמוכות-config>

<טופס-דגן>

<שם טופס פולי = “LoginForm” סוג = “com.home.upload.action.forms.LoginForm” />

<שם טופס פולי = “טופס תפריט” סוג = “com.home.upload.action.forms.MenuForm” />

<שם טופס פולי = “UploadForm” סוג = “com.home.upload.action.forms.UploadForm” />

</טופס-דגן>

<-קדימה עולמי />

<פעולה מיפויים>

<נתיב action = “/התחבר” סוג = “com.home.upload.action.LoginAction” name = “LoginForm” קלט = “/login.jsp” >

<שם קדימה = “success” נתיב = “/menu.jsp” />

<שם קדימה = “כישלון” נתיב = “/loginFailure.jsp” />

</action>

<נתיב action = “/menuAction” סוג = “com.home.upload.action.MenuAction” name = “טופס תפריט” קלט = “/menu.jsp” פרמטר = “שיטה” >

<שם קדימה = “להעלות” נתיב = “/fileUpload.jsp” />

<שם קדימה = “listfiles” נתיב =“/listUploadedFiles.jsp” />

</action>

<נתיב action = “/uploadAction” סוג = “com.home.upload.action.FileUploadAction” name =“UploadForm” קלט =“/fileUpload.jsp” >

<שם קדימה =“uploadSuccess” נתיב =“/uploadSuccess.jsp” />

</action>

</פעולה מיפויים>

<פרמטר-משאבי הודעה = “ApplicationResources” />

<התוספת מחלקה name = “org.apache.struts.validator.ValidatorPlugIn” >

<רכוש רכוש להגדיר = “נתיבים”

ערך = “/WEB-INF / מאמת-rules.xml,/WEB-INF / validation.xml” />

</חיבור>

</תמוכות-config>

[/קוד]

כפי שאנו רואים בדוגמא לעיל שאם בכיתה מרחיבה את מעמד פעולה הבסיסי זה צריך לעקוף את [קוד] לבצע [/קוד] שיטה. גם את קובץ config תמוך יש רק נתיב אחד קדימה מתאים [קוד] uploadAction [/קוד].

פעולה שדר

כיתת פעולת שיגור גם מרחיבה את מעמד פעולה הבסיסי. יש מחלקה זו יתרון על פני הכיתה פעולה שזה לא צריך לעקוף את השיטה לבצע במפורש ולא היזמים חופשיים לכתוב שיטות משלהם. היא מאפשרת למפתחים להשתמש במחלקות אותה הפעולה עבור תזרימים מרובים. דוגמא קלסית להשתמש בכיתת פעולת שיגור במקרה של טיפול פעולות תפריט כמו תחת -

[קוד]

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 ;

/**

* @מְחַבֵּר TechAlpine

*/

ציבורי מעמד MenuAction מרחיב DispatchAction {

פרטי סטטי כּוֹרֵת עֵצִים כּוֹרֵת עֵצִים = לוגר.getLogger( MenuAction.מעמד );

ציבורי העלאת ActionForward( מיפוי ActionMapping, טופס ActionForm, בקשת HttpServletRequest,

בתגובה HttpServletResponse ) throws IOException, ServletException {

return ( mapping.findForward ( UploadConstants.העלאה ) );

}

ציבורי ActionForward listFiles( מיפוי ActionMapping, טופס ActionForm, בקשת HttpServletRequest,

בתגובה HttpServletResponse ) throws IOException, ServletException {

FileUploadService uploadService = חדש FileUploadServiceImpl ();

מחרוזת stagingLocation = getServlet().getServletContext().getRealPath( “/” ). CONCAT( UploadConstants.UPLOAD_FOLDER );

טופס בתפריט טופס תפריט = (טופס תפריט) צורה;

אם ((חדש קוֹבֶץ( stagingLocation ) ).קיים() ) {

רשימה<חוט> שמות קבצים = uploadService.getFileNames( stagingLocation );

אם (fileNames.size() > 0 ) {

menuForm.setFiles( שמות קבצים );

menuForm.setListFlag ( UploadConstants.נָכוֹן );

} אַחֵר {

menuForm.setListFlag ( UploadConstants.שֶׁקֶר );

}

} אַחֵר {

menuForm.setListFlag( UploadConstants.שֶׁקֶר );

}

כּוֹרֵת עֵצִים.מידע( ” חוזר LIST “);

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

}

}

[/קוד]

כפי שאנו רואים כאן קיימות שתי שיטות אשר לטפל בבקשה מהמשתמש. שתי שיטות אלה מוגדרות [קוד] config.xml תמוך [/קוד] כמו תחת -

[קוד]

<נתיב action = “/menuAction” סוג = “com.home.upload.action.MenuAction” name = “טופס תפריט” קלט = “/menu.jsp” פרמטר = “שיטה” >

<שם קדימה = “להעלות” נתיב = “/fileUpload.jsp” />

<שם קדימה = “listfiles” נתיב = “/listUploadedFiles.jsp” />

</action>

[/קוד]

שתי השיטות – יש להעלות listfiles שני ערכים נפרדים נגד מעמד פעולה – MenuAction. כל אחת משיטות אלו יש נתיבים קדימה נפרדים שאליו הם היו להפנות את בתגובה.

מסקנה

  • תמוכות היא מסגרת קוד פתוח להשתמש ביישום אינטרנט מבוסס Java.
  • תמוכות מבוססת על בקר להציג מודל – תבנית עיצוב MVC.
  • יש תמוכות חמש כיתות פעולה שונות אשר נפוצה ביותר הם –
    • פעולה
    • DispatchAction
  • כיתת הפעולה היא מח' הבסיס שאליו כל מעמדות הפעולה צריכות לחול.
  • חוגי ההארכה בכיתת הפעולה צריכים לעקוף את שיטה לביצוע.
  • חוגי ההארכה בכיתת פעולת שיגור יש שיטות קדימה פעולה משלהם.
  • חוגי ההארכה בכיתת פעולת שיגור יכולים להיות שיטות פעולה קדימה מרובות ובכך להפוך שימושי במקרה של תזרימי מרובים אופציונליים.

 

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