مرور المعلمة يعني نقل المعلمات إلى خلفية البرنامج. قد تقوم الخلفية ببعض المعالجة ، ثم حفظ المحتوى في قاعدة البيانات.
هناك العديد من الطرق لتمرير المعلمات ، كما هو موضح واحدة تلو الأخرى.
1. طريقة المعلمة المباشرة في العمل
هناك ملف index.jsp التالي
نسخة الكود كما يلي: <؟
<٪@ page language = "java" contentType = "text/html ؛ charset = gb18030"
pageencoding = "GB18030" ٪>
<٪
string path = request.getContextPath () ؛
String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+path+"/" ؛
٪>
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en"
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv = "content-type" content = "text /html ؛ charset = gb18030" />
<base href = "<٪ = basepath ٪>"/>
<title> إدراج العنوان هنا </title>
</head>
<body>
استخدم سمة الإجراء لتلقي المعلمة <a href = "user/user! add؟ name = a & age = 8"
</body>
</html>
بالنسبة لـ <a> </a> ، تمرير معلمتين إلى البرنامج ، والآخر هو الاسم والآخر هو العمر. التكوين في Struts.xml كما يلي:
انسخ رمز الرمز كما يلي: <؟
<! doctype الدعامات العامة
"-// Apache Software Foundation // DTD Struts Configuration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<name constant = "struts.devmode" value = "true" />
<package name = "user" تمديد = "Struts-Default" NamePace = "/user">
<action name = "user">
<STRONT> /USER_ADD_SUCCESS.JSP </SPRENT>
</action>
</cream>
</struts>
كيف يجب أن نكتب معامل المستخدم لدينا في هذا الوقت؟ الأمثلة على النحو التالي:
نسخة الكود كما يلي: package com.bjsxt.struts2.user.action ؛
استيراد com.opensymphony.xwork2.actionsupport ؛
يمتد معامل مستخدم الفئة العامة Actionupport {
اسم السلسلة الخاصة ؛
عصر INT الخاص ؛
السلسلة العامة إضافة () {
System.out.println ("name =" + name) ؛
System.out.println ("Age =" + Age) ؛
العودة النجاح
}
السلسلة العامة getName () {
اسم العودة
}
public void setName (اسم السلسلة) {
this.name = name ؛
}
الجمهور int getage () {
عودة العمر ؛
}
public void setage (int age) {
this.age = العمر ؛
}
}
الأمر بسيط للغاية ، فهو يحدد خصائصين. ملاحظة: يجب كتابة مجموعة وحصولها على أساليب هاتين الخصائص ، ويتم استخدام طريقة التوليد السريع من الكسوف ، وهو أمر بسيط للغاية. وبهذه الطريقة ، سيقوم البرنامج أعلاه بطباعة النتيجة المطلوبة عند تشغيله
الاسم = A والعمر = 8.
التفسير على النحو التالي: أولاً ، ستقوم Struts2 تلقائيًا بتمرير المعلمات ، ولا نحتاج إلى المشاركة في هذه العملية ؛ ثانياً ، تمرير الدعامات المعلمات لتعيين الأساليب والحصول عليها ، وليس سمات الاسم والعمر. وهذا يعني ، إذا قمنا بتعديل الاسم الموجود فيه إلى أسماء أخرى ، مثل اسم المستخدم ، ولكن الأساليب لا تزال محددة واسم ، فلا يوجد فرق بين تنفيذ الوظيفة بأكملها ، فهي مجرد محرج بعض الشيء ؛ ثالثًا ، والنقطة الأكثر أهمية هي أنه إذا كانت هناك العديد من السمات ، فنحن بحاجة إلى الكثير من الأساليب والحصول على الأساليب ، وهي غير مريحة للغاية ، وبالتالي يتم تمديد الطريقة التالية.
2. الإجراء إضافة طريقة كائن الفئة
في هذا الوقت ، يتم تصنيف الخصائص في 1
نسخة الكود كما يلي: package com.bjsxt.struts2.user.model ؛
مستخدم الفئة العامة {
اسم السلسلة الخاصة ؛
عصر INT الخاص ؛
السلسلة العامة getName () {
اسم العودة
}
public void setName (اسم السلسلة) {
this.name = name ؛
}
الجمهور int getage () {
عودة العمر ؛
}
public void setage (int age) {
this.age = العمر ؛
}
}
هذا يجعل الكتابة في فصل العمل أسهل بكثير
نسخة الكود كما يلي: package com.bjsxt.struts2.user.action ؛
استيراد com.bjsxt.struts2.user.model.user ؛
استيراد com.opensymphony.xwork2.actionsupport ؛
يمتد معامل مستخدم الفئة العامة Actionupport {
مستخدم خاص للمستخدم ؛
السلسلة العامة إضافة () {
System.out.println ("name =" + user.getName ()) ؛
System.out.println ("Age =" + user.getage ()) ؛
العودة النجاح
}
المستخدم العام getUser () {
إرجاع المستخدم ؛
}
public void setuser (مستخدم المستخدم) {
this.user = المستخدم ؛
}
}
ملاحظة: في هذا الوقت ، لا نحتاج إلى إنشاء كائن مستخدم يدويًا بأنفسنا. يتم إكمال هذه العملية تلقائيًا بواسطة Struts2.
ويجب تعديل عنوان URL في هذا الوقت ، أي أن العلامة <A> </a> في الفهرس مُعدل:
نسخة الكود كما يلي: <؟
<٪@ page language = "java" contentType = "text/html ؛ charset = gb18030"
pageencoding = "GB18030" ٪>
<٪
string path = request.getContextPath () ؛
String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+path+"/" ؛
٪>
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en"
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv = "content-type" content = "text /html ؛ charset = gb18030" />
<base href = "<٪ = basepath ٪>"/>
<title> إدراج العنوان هنا </title>
</head>
<body>
استخدم نموذج المجال لتلقي المعلمات <a href = "user/user! add؟ user.name = a & user.age = 8"
</body>
</html>
تعديل في قسم 18 خطًا أعلاه.
يصف ما ورد أعلاه طريقتين لتمرير المعلمة Struts2 ، تسمى الطريقة الثانية: DomainModel ، نموذج المجال. وهذا هو ، إنشاء فئة جديدة لتخزين السمات.
تم وصف طريقة أخرى أدناه ، تسمى ModelDvenved ، مدفوعة النموذج.
إنها تشبه إلى حد كبير الطريقة الثانية ، والآخرون متماثلون ، باستثناء أن هناك فرقًا بين العمل والوصول. عمله على النحو التالي:
نسخة الكود كما يلي: package com.bjsxt.struts2.user.action ؛
استيراد com.bjsxt.struts2.user.model.user ؛
استيراد com.opensymphony.xwork2.actionsupport ؛
استيراد com.opensymphony.xwork2.modeldriven ؛
يمتد معامل مستخدم الفئة العامة الإجراءات التي تنفذها ModelDdriven <Sether> {
مستخدم المستخدم الخاص = مستخدم جديد () ؛
السلسلة العامة إضافة () {
System.out.println ("name =" + user.getName ()) ؛
System.out.println ("Age =" + user.getage ()) ؛
العودة النجاح
}
@تجاوز
المستخدم العام getModel () {
إرجاع المستخدم ؛
}
}
يمكننا أن نرى من هذا أنه ينفذ الواجهة النموذجية ويعتمد التكنولوجيا العامة. وبهذه الطريقة ، لن يقوم Struts2 بتثبيت كائن تلقائيًا ، لذلك يمكننا أن ننشئه يدويًا فقط. يتجاوز طريقة getModel () لواجهة ModelDriven ، ووظائفها هي إرجاع كائن فئة.
يختلف وصوله عن الثانية (كما في الطريقة الأولى):
انسخ رمز الرمز كما يلي: استخدم ModelDriven لتلقي المعلمات <a href = "user/user! add؟ name = a & age = 8"
لا تستخدم طريقة المستخدم. اسم ، وهذا هو السبب في أنه من الضروري أن يكون كائنًا جديدًا.
العملية الإيديولوجية الأساسية لهذه الطريقة هي: أولاً ، يقوم الإجراء بتحليل عنوان URL ، ويحصل على المعلمات ، ثم يدخل الإجراء. لقد وجد أن هذا الإجراء ينفذ واجهة نموذجية. في هذا الوقت ، يتم استدعاء طريقة getModel لواجهة ModelDrvening للحصول على كائن الفئة ، ثم يتم استدعاء مجموعة وحصولها على أساليب هذه الفئة لتمرير المعلمات فيها.
تعكس هذه الطريقة فكرة MVC لـ Struts2 ، M --- نموذج ، V --- View ، C --- وحدة التحكم ، ولكن نادراً ما يتم استخدام هذه الطريقة ، والطريقة الثانية التي نستخدمها أكثر من غيرها.
ما سبق هو المحتوى الكامل لطريقة توصيل المعلمة في Struts2. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.