Ich benutze playframework 2.2.0 mit Java. Wie kann ich "Not Modified" von meinen Controlleraktionen zurückgeben?
In der Controller-SuperClass gibt es mehrere Methoden: ok (), noContent () usw., aber nicht notModified ().
Beim Betrachten des Quellcodes für das Spiel kann ich sehen:
val NotModified = SimpleResult(header = ResponseHeader(NOT_MODIFIED), body = Enumerator.empty,
connection = HttpConnection.KeepAlive)
in play.api.mvc.Results. Aber wie kann ich ein SimpleResult in etwas einfügen, das vom Java-Controller zurückgegeben werden kann?
Die Methode möchte ein Ergebnis zurückgeben:
public interface Result {
scala.concurrent.Future<play.api.mvc.SimpleResult> getWrappedResult();
}
aber ich weiß nicht, wie man aus Java eine Zukunft generiert (Ich habe es mit scala.concurrent.Future $ .MODULE $ ... versucht, aber es ist für meinen Java-Code nicht sichtbar)
Antworten:
1 für die Antwort № 1Anstelle von etwas wie ok (), versuche dies:
return status(304, "Content not modified, dude.");
Referenz: http://www.playframework.com/documentation/2.2.0/JavaActions
Es sieht aus wie play.api.mvc.Ergebnisse, in der Scala API, hat tatsächlich einen NotModified Generator, aber die Java API nicht. Sie können nichts von der Scala-API verwenden, wenn Sie mit der Java-API arbeiten. Sieht so aus, als wäre die Java-API das ungeliebte Kind von Play Framework.
Zusammengefasst ist das Zurückgeben des Status 304 viel einfacher, als zu versuchen, Komponenten aus der Play Scala-API zu ziehen und sie aus Java zu verwenden. HTTP-Antwortcode 304 = Inhalt nicht geändert.
Sehen Sie die Liste der Codes hier: http://www.w3.org/Protocols/HTTP/HTRESP.html