Hinzufügen einer Methode zu einer Domänenklasse

8

Ich habe eine Domain-Klasse, die ein paar Felder enthält. Ich kann über meine .gsps auf sie zugreifen. Ich möchte der Domain-Klasse eine Methode hinzufügen, die ich aus der .gsps aufrufen kann (diese Methode ist eine Art virtuelles Feld; ihre Daten kommen nicht direkt von der Datenbank).

Wie füge ich die Methode hinzu und wie kann ich sie dann von der .gsps aus aufrufen?

    
qollin 11.10.2008, 17:14
quelle

3 Antworten

11

Um eine Methode hinzuzufügen, schreiben Sie sie einfach so aus, wie Sie es bei jeder anderen Methode tun würden. Es wird auf dem Objekt verfügbar sein, wenn Sie es in Ihrem GSP anzeigen.

%Vor%

Dann in Ihrem GSP.

%Vor%     
Hates_ 11.10.2008, 17:29
quelle
6

Wenn Sie möchten, dass Ihre Methode eher wie eine Eigenschaft aussieht, dann machen Sie Ihre Methode zu einer Getter-Methode. Auf eine Methode namens getFullName () kann wie eine Eigenschaft als $ {person.fullName} zugegriffen werden. Beachten Sie das Fehlen von Klammern.

    
John Flinchbaugh 14.10.2008 02:06
quelle
4

Betrachten Sie die Klasse wie folgt

Klasse Job {

%Vor%

}

Sie können diese jsonMap verwenden, wo immer Sie wollen. In gsp auch wie $ {jobObject.jsonMap ()}

    
Ramesh 30.08.2013 14:16
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ answer179076 ___

Der beste Weg, JavaScript zu finden, bestand darin, mehrere Response.Write () - oder Warnmeldungen in der Nähe des Ortes hinzuzufügen, von dem ich glaubte, dass der Code kaputt war. Die Schreib- oder Warnmeldung, die nicht angezeigt wird, ist dem problematischen Bereich des Codes am nächsten.

Ich habe es so gemacht, weil ich keinen einfacheren Weg gefunden habe.

Update: Wenn Sie diese Methode des Debuggens verwenden, können Sie die writes / alerts auch auf den Inhalt von Variablen anwenden.

    
___ answer179117 ___

Kurz gesagt. Nicht wirklich. Versuchen Sie zuerst, den Fehler in FF zu finden, und wenn das fehlschlägt, können Sie einen fast so guten Debugger mit Visual Web Developer . Debuggen von IE ist nur zum größten Teil saugt.

    
___ answer179635 ___

Tipp: Ich finde, dass viele Zeilenzeilennummern für IE-Fehlermeldungen um eins nach unten sind!

    
___ answer179101 ___

Die Webentwickler-Symbolleiste in IE7 kann Ihnen eine gerenderte Quellansicht geben.

%Vor%

Dies ist möglicherweise genauer, wenn Sie die Zeilennummern berücksichtigen, die der IE für Skriptfehler bereitstellt.

    
___ answer179115 ___

Durch Installieren von firebug lite auf Ihrem Server für diese Seite:

%Vor%

Sie können sich mit

an einer virtuellen Konsole anmelden %Vor%

und bitten Sie Ihren Remote-Tester, durch Drücken von F12 weitere Details zu erhalten.

Ich vermute, dass da draußen eine nicht abgeschlossene Zeichenfolge oder eine nicht passende Klammer oder Klammer ist.

    
___ answer179095 ___

Haben Sie überprüft, ob dieser Fehler auch in Firefox mit Firebug auftritt? Das wäre mein erster Schritt, um herauszufinden, wo dieser Fehler auftritt.

Wenn es in Firefox nicht vorhanden ist, würde ich das Skript-Debugging in IE aktivieren.

    
___ answer179371 ___

Nein, es gibt keine Möglichkeit, die eingebaute Exception-Nachricht weniger auszulaugen.

Stattdessen müssen Sie einen Debugger mit IE verwenden. Das beste Tutorial, das ich dafür gefunden habe, ist hier:

Ссылка

Folgen Sie diesen Anweisungen und wenn ein Fehler oder eine Ausnahme auftritt, wird Ihnen die genaue Zeile in der richtigen Datei angezeigt. Sie sehen auch den Wert der Variablen im aktuellen Bereich und Sie können "überwachte" Elemente einrichten, die Ihnen beim Debuggen helfen.

Abgesehen davon, wenn Sie Logging und CSS Cascade Inspektion wie Firebug benötigen, habe ich gute Ergebnisse mit DebugBar und JSCompanion:

Ссылка Ссылка

    
___ answer179083 ___

Probiere Firebug. Ich bin verfügbar für IE: Ссылка

    
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer179098 ___

Ich benutze Web Development Helper

    
___ answer179107 ___

Mein einziger Tipp: Verwenden Sie den IE nicht zum Debuggen so. Es ist der absolut schlechteste der Mainstream-Browser: Ich versuche Firefox (mit Firebug) oder Chrome / Safari zu verwenden, um die meisten Probleme zu lösen.

Wenn Sie unbedingt IE verwenden müssen, installieren Sie die IE-Toolbar für den Entwickler (was bei JavaScript-Fehlern nicht viel hilft) und / oder den Script-Debugger installieren

    
___ tag123debugging ___ Debugging ist ein methodischer Prozess zum Suchen und Beheben von Fehlern in einem Computerprogramm. ** WICHTIGER HINWEIS: ** Dieses Tag ist NUR für Fragen über Debugging-Techniken oder den Debugging-Prozess gedacht, NICHT um Hilfe beim Debuggen Ihres Codes anzufordern. ___ tag123internetexplorer ___ Internet Explorer (üblicherweise abgekürzt IE oder MSIE) ist ein von Microsoft entwickelter Webbrowser, der Teil von Microsoft Windows ist. ___ qstntxt ___

Ich schreibe eine App, die aus verschiedenen Gründen Internet Explorer (IE7, für den Datensatz), ActiveX-Steuerelemente und eine heroische Menge von JavaScript, die über mehrere .js umfasst umfasst umfasst.

Bei einem unserer Remote-Tester tritt eine Fehlermeldung auf, und die Fehlermeldung des IE sagt Folgendes aus:

%Vor%

Es gibt nur eine JavaScript-Datei mit über 719 Zeilen und Zeile 719 ist eine leere Zeile (in diesem Fall).

Keine der HTML- oder anderen Dateien, die an dem Projekt beteiligt sind, hat 719 oder mehr Zeilen, aber der resultierende HTML-Code (es ist eine Art serverseitige Include-Sache), zumindest so, wie IE von "View Source" zeigt oder mehr Zeilen - aber Zeile 719 (in diesem Fall) ist ein schließendes Tabellenzeilen-Tag (mit anderen Worten kein JavaScript).

Die Ergebnisse von "View Generated Source" sind in diesem Fall nur 310 Zeilen.

Ich könnte mir vorstellen, dass es möglicherweise sein könnte, dass die gesamte Seite mit den Inhalten der JavaScript-Dateien, die inline mit dem Rest des HTML dargestellt werden, der Fehler sein könnte, aber ich kenne keine gute Möglichkeit, sie anzuzeigen was das wäre,

Also, bei einem JavaScript-Fehler von Internet Explorer wo die Zeilennummer der einzige Hinweis ist aber die Seite ist tatsächlich über mehrere Dateien verteilt?

UPDATE: Das Problem wird durch die Tatsache noch verschärft, dass der Benutzer dies aus verschiedenen Gründen und aus verschiedenen Gründen im Netzwerk findet, indem er etwas wie Visual Studio 2008 (das übrigens ein tolles JavaScript-Debugging hat) verwendet ) ist unmöglich. Ich bin darauf beschränkt, dass einer von uns die Quelle anschaut, um zu versuchen, herauszufinden, auf welcher Codezeile er herumkramt.

UPDATE 2: Die richtige Antwort (wie unten akzeptiert) scheint "nein, nicht wirklich" zu sein. Für was es wert ist, Robert J. Walker's bisschen darüber, dass es von einem los ist, brachte mich in die richtige Richtung, da ich denke, dass es die beleidigende Linie war. Aber das ist nicht wirklich das, was ich als gut oder zuverlässig bezeichnen würde (IE ist schuld, nicht Robert J. Walker ist schuld) Ich werde die Antwort "nein, nicht wirklich" akzeptieren. Ich bin mir nicht sicher, ob das die richtige SO-Etikette ist. Bitte lassen Sie mich wissen, wenn es nicht über die Kommentare ist.

    
___