في القسم 8 ، أكملنا وظائف الاستعلام عن فئات المنتجات وحذفها ، لذلك من السهل تنفيذ وظائف الاستعلام عن المنتجات وحذفها. المبدأ هو نفسه تمامًا كما في القسم 8 ، فقط قم بتعديل بعض المعلمات ، مثل طلب إجراءات مختلفة ، وما إلى ذلك ، نظرًا لأن الاستعلام عن منتجات وحذفه لا يتطلب نافذة واجهة المستخدم جديدة لتظهر ، نحتاج فقط إلى إكمال الجزء المقابل في Query.jsp والخلفية المقابلة.
1. تنفيذ وظيفة استعلام المنتج
يتم تنفيذ وظيفة الاستعلام بشكل أساسي في صندوق الاستعلام. من القسم السابق ، يمكننا أن نرى أن مربع الاستعلام يستخدم نصًا: "<input id = 'ss' name = 'ss' />". نقوم بتنفيذها عن طريق تحويل مربع النص العادي إلى مربع نص البحث عن الاستعلام. نضيف أدناه الجزء المقابل من الكود في Query.jsp:
$ ('#ss'). searchbox ({// trigger Query Event Searcher: function (value ، name) {// value تمثل قيمة الإدخال // إضافة رمز المشغل $ ('#dg'). dataGrid ('load' ، {// repload ، حدد اسم المعلمة كاسم إدخال المستخدم: القيمة}) ؛} ،نتائج الاختبار كما يلي:
الاستعلام بسيط للغاية ، تمامًا مثل تحميل جميع المنتجات في القسم السابق ، باستثناء أنه عند الاستعلام ، يتم تعيين المعلمات على القيمة التي أدخلها المستخدم ، وعند تحميل جميع المعلمات على فارغة.
2. تنفيذ وظيفة حذف المنتج
بعد ذلك ، سنكمل وظيفة حذف المنتجات. أولاً ، سنكمل الكود المقابل في query.jsp:
{iconcls: 'icon-remove' ، النص: 'حذف المنتج' ، المعالج: function () {// إضافة رمز trigger var rows = $ ("#dg"). dataGrid ("getSelections") ؛ // الدفاع عما إذا كان هناك سجل صف محدد ، استخدم getSelections للحصول على جميع الصفوف المحددة // إرجاع الصف المحدد. في حالة عدم تحديد صفوف ، أعد صفيفًا فارغًا إذا (الصفوف. } آخر {// موجه ما إذا كان يجب تأكيد الحذف. في حالة تأكيد ، يتم تنفيذ منطق الحذف $ .messager.confirm ('حذف حوار تأكيد "، هل أنت متأكد من أنك تريد حذف هذا العنصر؟' ، الوظيفة (r) {if (r) {// 1. ++) {ids += الصفوف [i] .id +"،" ؛ تحديث التشغيل $ ("#dg"). dataGrid ("uncheckall") ؛ MSG: "Delete Failty ، يرجى التحقق من العملية" ، المهلة: 2000 ، showtype: 'slide' ،}}} ، "text") ؛ }}}}}}} كما يتضح من الكود أعلاه ، تتطلب عملية الحذف سجلًا واحدًا على الأقل لتحديده أولاً. بعد الاختيار ، عند تأكيد الحذف (أي ، r يكون صوابًا) ، احصل أولاً على السجلات التي تم فحصها من قبل المستخدم ، وربطت أرقام الهوية بهذه السجلات معًا ، ثم تريد إرسال طلب AJAX في الخلفية ، واطلب طريقة DeleteByids في مجال المنتج ، وأخذ المعرف المقسم كمعلمة. إذا نجح الحذف ، فقم بإرجاع سلسلة "صواب" إلى المقدمة ، ثم ستقوم المقدمة بمسح السجل الذي تم فحصه للتو لتجنب التأثير على عملية التحديث اللاحقة ، لأن التحديث يحتاج أيضًا إلى التحقق من السجل ، ثم تحديث الصفحة الحالية وإعادة تحميل جميع معلومات المنتج في قاعدة البيانات.
العملية واضحة جدا. دعنا نكتب برنامج الخلفية ، بدءًا من طبقة الخدمة:
Enterface Productservice يمتد Baseservice <torder> {// معلومات عن المنتج ، فئات متتالية القائمة العامة <Tromproy> QueryJoIncategory (نوع السلسلة ، صفحة int ، حجم int) ؛ // الاستعلام باستخدام اسم المنتج // استعلام إجمالي عدد السجلات استنادًا إلى الكلمات الرئيسية Public GetCount (نوع السلسلة) ؛ // حذف سجلات متعددة بناءً على IDS Public Void DeleteByids (معرفات السلسلة) ؛ } suppressWarnings ("Unchecked") service ("productervice") فئة producterviceImpl تمتد BaseserviceImpl <Product> Productservice {// حذف الرموز الأخرى ... Override public void deletebyids (string ids) {String HQl = "delete from product p in (" + ids + " getSession (). createquery (HQL) .executeupdate () ؛ }} بعد ذلك ، أكمل طريقة deleteByids في مجال المنتج:
controller ("ProductAction") scope ("prototype") تمتد عامل الإنتاج من الفئة العامة إلى BaseAction <Corder> {// إغفال الرموز الأخرى ... السلسلة العامة deleteByids () {system.out.println (ids) ؛ productervice.deleteByids (IDS) ؛ // إذا نجح الحذف ، فسيتم تنفيذه لأسفل. سوف نمر "صحيح" إلى المقدمة في شكل دفق inputStream = جديد bytearrayinputstream ("true" .getBytes ()) ؛ إرجاع "دفق" ؛ }}نفس الفكرة كما كان من قبل لحذف فئات المنتج ، يتم تكوين ما يلي في Struts.xml:
<action name = "product_*" method = "{1}"> <!-إغفال التكوينات الأخرى-> <result name = "dream" type = "dream"وبهذه الطريقة ، سيتم تمرير السلسلة "True" إلى مكتب الاستقبال وسيكون الحذف ناجحًا بعد تلقي التعليمات. تحقق من التأثير:
كان الاختبار ناجحًا ، وفي هذه المرحلة ، تم الانتهاء من وظائف البحث والحذف للمنتج.
عنوان المقالة هذا: http://blog.csdn.net/eson_15/article/details/51360804
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.