Ich versuche eine etwas bessere @Cached Annotation zu machen, indem ich auf die Parameter der Funktion aufmerksam mache, die ich in meinen Controllern anrufe.
Ich habe diese Aktion:
%Vor%Meine Frage ist: Ich möchte das Ergebnis von delegate.call () nur zwischenspeichern, wenn es ein Ok () ist. Wie kann ich das überprüfen? Gibt es eine Eigenschaft? ein util? oder muss ich Ok (). getClass (). isInstance (Ergebnis)?
Danke für die Antworten und Hinweise.
PS: Warum will ich das machen? Weil ich einige Anrufe habe, die wenige Arten von verschiedenen Ergebnissen erzeugen. Wenige Ergebnisse, die sie zwischenspeichern könnten eine Option sein, da ich nicht möchte
Ein ok
-Ergebnis ist tatsächlich ein play.mvc.Results.Status
, das sein Scala-Gegenstück play.api.mvc.Results.Status
umschließt, das wiederum seinen status
-Code auf 200 gesetzt hat.
Also rufst du result.getWrappedResult()
auf und prüfst, ob der Typ stimmt, wirf ihn auf PlainResult
(den kleinsten gemeinsamen Nenner) und rufe status
auf.
Das sieht aber sehr hässlich aus:
%Vor%Nur um diese Seite mit der neuesten Version von 2.3+ Playframework zu aktualisieren.
%Vor%einfach genug.
Wenn Sie wissen, dass Ihre Result
eine Instanz von play.mvc.Results.Status
ist (was das ist, wenn Sie sie mit einer der statischen Hilfsmethoden aus der Klasse play.mvc.Results
erstellt haben), können Sie sie in Status
umsetzen und holen ein SimpleResult
-Objekt, das direkt getWrappedSimpleResult()
verwendet:
Tags und Links java playframework playframework-2.0