الدعامات2
تم تطوير Struts2 بناءً على WebWork2. مثل struts1، تنتمي Struts2 أيضًا إلى إطار عمل MVC. ولكن الشيء الوحيد الذي يجب على الجميع الانتباه إليه هو أنه على الرغم من أن الفرق في الأسماء بين Struts2 وstruts1 ليس كبيرًا جدًا، إلا أن أنماط الترميز الخاصة بـ Struts2 وstruts1 مختلفة تقريبًا. والآن بعد أن أصبح لدينا الدعامات 1، لماذا يجب علينا إطلاق الدعامات 2. ويرجع ذلك أساسًا إلى أن struts2 تتمتع بالمزايا التالية:
1> فيما يتعلق بتصميم البرامج، لا ترتبط Struts2 ارتباطًا وثيقًا بـ ServletAPI وstrutsAPI، كما لا تعتمد تطبيقات struts2 على ServletAPI وstrutsAPI. هذا التصميم لـ Struts2 هو تصميم غير تدخلي، في حين أن Struts1 هو تصميم تدخلي.
publicclassOrderListActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest،HttpServletResponseresponse)
رميات استثناء {
}
}
2> يوفر Struts2 اعتراضًا يمكن استخدامه لبرمجة AOP لتنفيذ وظائف مثل اعتراض الأذونات.
3> يوفر Strut2 محولًا للنوع، ويمكننا تحويل معلمات الطلب الخاصة إلى النوع المطلوب. في Struts1، إذا أردنا تحقيق نفس الوظيفة، فيجب علينا تسجيل محول النوع باستخدام BeanUtil، وهو التنفيذ الأساسي لـ Struts1.
4> يوفر Struts2 الدعم لمجموعة متنوعة من تقنيات طبقة العرض التقديمي، مثل: JSP، وfreeMarker، وVelocity، وما إلى ذلك.
5> يمكن للتحقق من إدخال Struts2 التحقق من الطريقة المحددة، والتي تحل مشكلة Struts1 طويلة المدى.
6> يوفر تنفيذ إدارة ملفات الموارد الدولية في النطاق العالمي ونطاق الحزمة ونطاق العمل.
إعداد بيئة تطوير Struts2
1. ابحث عن ملفات jar اللازمة لتطوير تطبيقات Struts2
الحد الأدنى من ملفات jar المطلوبة لتطوير Struts2
struts-core-2.xxjar: مكتبة الفئة الأساسية لإطار عمل Struts2
xwork-2.xxjar: مكتبة فئة XWork، تم بناء Struts2 فوقها
ognl-2.6.jar: بالنسبة للغة التنقل عبر الصور (ObjectGraphNavigationLanguage)، يقوم إطار عمل Struts2 بقراءة وكتابة خصائص الكائن من خلالها
freemarker-2.3.x.jar: تتم كتابة قالب تسمية واجهة المستخدم Struts2 باستخدام freeMarker
commons-logging-1.1.x.jar: حزمة سجل تم إنتاجها بواسطة ASF يستخدم إطار عمل Struts2 حزمة السجل هذه لدعم تسجيل Log4J وJDK1.4+.
commons-filteupload-1.2.1.jar مكون تحميل الملف، يجب إضافة الملف بعد الإصدار 2.1.6
2. اكتب ملف التكوين Struts2
ملف التكوين الافتراضي لـ Struts2 هو struts.xml. يجب تخزين هذا الملف ضمن WEB-INF/classes. قالب التكوين لهذا الملف هو كما يلي:
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC".//ApatcheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apatche.org/dtds/struts-2.0.dtd">
<الدعامات>
</الدعامات>
3. أضف تكوين بدء تشغيل إطار عمل Struts2MVC إلى Web.xml
في struts1.x، يتم بدء إطار عمل الدعامات من خلال Servlet. في الدعامات 2، يبدأ إطار الدعامات من خلال عامل التصفية. تكوينه في web.xml كما يلي:
<فلتر>
<filter-name>struts2</filter-name>
<filter-class>org.apatche.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!--منذ Struts2.1.3، تم وضع علامة على FilterDispatcher التالي على أنه قديم
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->
</فلتر>
<تصفية=رسم الخرائط>
<filter-name>struts2</filter-name>
<نمط URL>/*<نمط URL>
</filter-mapping>
في طريقة init () الخاصة بـ StrutsPerpareAndExecuteFilter، ستتم قراءة ملف التكوين الافتراضي struts.xml في مسار الفئة لإكمال عملية التهيئة.
مقدمة إلى الحزم في تكوين Struts.xml
<packagename="itcast"namespace="/test"extends="struts-defult">
<actionname="helloworld"class="cn.itcast.action.HelloWorldAction"method="execute">
<resultname="success">/WEB-INF/page/hello.jsp</result>
</أكشن>
</حزمة>
للعثور على ملف الجرة الذي يحتاج إلى تطويره، تحتاج إلى فك ضغطه: struts-2.3.8-all.gz
أو يجد struts-2.3.8-apps.gz الملفات ضمن struts-2.3.8-all/struts-2.3.8/apps كما يلي:
تم توفير مشروع فارغ struts2-blank، ويمكننا تطوير struts2 في هذا المشروع.
ماذا علي أن أفعل إذا كنت بحاجة إلى دعم ملفات jar الأخرى أثناء عملية التطوير؟
تحتاج إلى العثور على ملف الجرة المقابل في /struts-2.3.8-all/struts-2.3.8/lib.
كيفية فك ضغط مشروع struts2-blank.war - انسخه إلى webapps في Tomcat وابدأ Tomcat
ابحث عن ملف Startup.bat في Apache-tomcat/bin وانقر للبدء
يراقب:
يمكنك فتح متصفح IE
أدخل http://localhost:8080/struts2-blank
ابحث عن ملف الجرة الذي تم فك ضغطه: Apache-tomcat/webapps/struts2-blank/WEB-INF/lib
سجلات الأخطاء:
1.java.net.BindException:Addressalreadyinuse:JVM_Bind
التحليل: حدث خطأ بسبب عدم إيقاف تشغيل القط الذي تستخدمه قبل البدء للمرة الثانية أو n.
حل:
فقط أغلق القط الذي بدأ.
HTTPStatus404-/demo/servlet/demo.do
التحليل: لا يمكن العثور على عنوان URL الذي طلبته: servlet/demo.do
حل:
تحقق مما إذا كان عنوان URL الخاص بك موجودًا؟ إذا لم يكن موجودًا، قم بإضافته وفقًا للنشاط التجاري.
3.
لا توجد خريطة عمل ملحقة بعرض توضيحي لاسم الإجراء.
التحليل: لا يمكن العثور على الإجراء التجريبي المقابل على جانب الخادم
تجريبي. العمل
/csdn/demo.action
المطالبة الوحيدة: لم يتم العثور على العرض التوضيحي
لم يتم العثور على إلغاء الحركة ضمن /csdn
حشرة
Noresult Definitionforactioncom.opensymphony.xwork2.ActionSupportandresultsuccess