In Abschnitt 8 haben wir die Funktionen des Abfragungs- und Löschens von Produktkategorien abgeschlossen, sodass es einfach ist, die Funktionen des Abfragungs- und Löschens von Produkten zu implementieren. Das Prinzip ist genau das gleiche wie in Abschnitt 8, ändern Sie nur einige Parameter, z. B. Anfordern von verschiedenen Aktionen usw. Da das Abfragen und Löschen von Produkten kein neues UI -Fenster benötigt, müssen wir nur den entsprechenden Teil in query.jsp und dem entsprechenden Hintergrund vervollständigen.
1. Implementierung der Produktabfragefunktion
Die Abfragefunktion wird hauptsächlich in der Abfragebeld implementiert. Aus dem vorherigen Abschnitt können wir sehen, dass das Abfragebeld einen Text verwendet: "<Eingabe -ID = 'SS' name = 'ss' />". Wir implementieren es, indem wir das ordentliche Textfeld in ein Textfeld für Abfragen konvertieren. Im Folgenden fügen wir den entsprechenden Teil des Codes in query.jsp hinzu:
$ ('#ss'). SearchBox ({// Trigger -Abfrageereignisereignissecker: Funktion (Wert, Name) {// Wert repräsentiert den Eingaberwert // Fügen Sie Triggercode $ ('#dg'). DataGrid ('Load', {// REGENLADEN, Geben Sie den Parameternamen als Benutzereingabenname: Wert an});}, Aufforderung an, die Such -Keyword “});}).Die Testergebnisse sind wie folgt:
Die Abfrage ist sehr einfach, genau wie das Laden aller Produkte im vorherigen Abschnitt, außer dass die Parameter beim Abfragen auf den vom Benutzer eingegebenen Wert festgelegt werden und beim Laden aller Parameter auf leer eingestellt werden.
2. Implementierung der Produktdeletionsfunktion
Als nächstes werden wir die Funktion des Löschens von Produkten ausfüllen. Zunächst werden wir den entsprechenden Code in query.jsp vervollständigen:
{iconcls: 'icon-remove', text: 'produkt löschen', Handler: function () {// Triggercode var rows = $ ("#dg"). datagrid ("getSelections"); // Verteidigen Sie, ob ein ausgewählter Zeilendatensatz vorhanden ist, verwenden Sie GetSelections, um alle ausgewählten Zeilen zu erhalten // Die ausgewählte Zeile zurückgeben. Wenn keine Zeilen ausgewählt sind, geben Sie ein leeres Array zurück, wenn (Zeilen.length == 0) {// Die Eingabeaufforderung Meldung $ .Messager.Show ({// Die Syntax ist der statischen Methode in Java. Direct -Objekt -Anrufe: 'Fehleraufforderung', msg: 'mindestens ein Datensatz', Timeout: 2000, 2000, ShowtyPe: ',',},},}, Pop -Up. } else {// fordern Sie auf, ob die Löschung bestätigt werden soll. Wenn dies bestätigt wird, wird die Logik des Deletions $ .Messager.Confirm ('Dialog "Bestätigen Sie bestätigen" ausgeführt. Sind Sie sicher, dass Sie dieses Element löschen möchten? ", Funktion (r) {if (r) {// 1. Holen Sie sich die entsprechende ID aus dem erhaltenen Datensatz, Splice der ID und dann senden Sie den Hintergrund 1,2,3,3,4 -IDS =". ++) {ids += Zeilen [i] .ID +"; Nachfolgende Aktualisierungsoperation $ ("#DG"). DataGrid ("Unerrecall"); MSG: 'Delete fehlgeschlagen, bitte überprüfen Sie die Operation', Timeout: 2000, ShowType: 'Slide',}); }}}}}}} Wie aus dem obigen Code ersichtlich ist, muss der Löschvorgang zuerst mindestens ein Datensatz ausgewählt werden. Nach der Auswahl der Löschung (dh R ist wahr), erhalten Sie zuerst, welche Datensätze vom Benutzer überprüft wurden, die ID -Nummern dieser Datensätze zusammengespleifen und dann die AJAX -Anforderung im Hintergrund senden möchten, die Deletebyids -Methode in der Produktion anfordern und die Spleiß -ID als Parameter nutzen. Wenn die Löschung erfolgreich ist, geben Sie eine Zeichenfolge "true" in den Vordergrund zurück, und dann löscht der Vordergrund den gerade überprüften Datensatz, um zu vermeiden, dass sich die nachfolgende Aktualisierungsoperation auswirkt, da das Update auch den Datensatz überprüfen muss. Dann aktualisieren Sie die aktuelle Seite und laden Sie alle Produktinformationen in der Datenbank neu.
Der Prozess ist sehr klar. Schreiben wir das Hintergrundprogramm, beginnend mit der Serviceschicht:
public interface productService erweitert BaseSeService <produkt> {// Produktinformationen abfragen, kaskadierende Kategorien öffentliche Liste <produkt> queryjoincategorie (String -Typ, int Seite, int Größe); // Abfragen Sie den Produktnamen an // Abfragen Sie die Gesamtzahl der Datensätze basierend auf Schlüsselwörtern. // Mehrere Datensätze löschen basierend auf IDs Public void DeleteByIds (String -IDs); } @SuppressWarnings ("Unbekämpft") @Service ("Products Service") PUBLIC CLASSELSPROPTUREDIVICEIMPL erweitert BaseServiceImpl <produkts> implementiert Productsservice {// andere Codes weglassen. GetSession (). CreateEquery (HQL) .executeUpdate (); }} Vervollständigen Sie als nächstes die Methode DeleteByIds in ProduktAktion:
@Controller ("productAction") @Scope ("Prototyp") ProductAction erweitert Baseaction <Produkt> {// andere Codes weglassen ... public String deleteByIds () {System.out.println (IDs); ProductService.DeletByIds (IDS); // Wenn die Löschung erfolgreich ist, wird sie nach unten ausgeführt. Wir werden in Form eines Stream -InputStreams "wahr" in den Vordergrund übergeben. zurück "stream"; }}Die gleiche Idee wie zuvor zum Löschen von Produktklassen ist Folgendes in Struts.xml konfiguriert:
<Action name = "product_*" method = "{1}"> <!-andere Konfigurationen weglassen-> <result name = "stream" type = "stream"> <param name = "inputName"> inputStream </param> </result> </action>Auf diese Weise wird die Zeichenfolge "True" an die Rezeption übergeben und der Löschen wird nach Erhalt der Anweisungen erfolgreich sein. Schauen Sie sich den Effekt an:
Der Test war erfolgreich, und zu diesem Zeitpunkt wurden die Such- und Löschfunktionen des Produkts abgeschlossen.
Diese Artikeladresse: http://blog.csdn.net/eson_15/article/details/51360804
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.