2013-10-26 44 views
1

我正在使用playframework 2.2.0與Java。我如何從控制器操作中返回Not Modified?Playframework 2.2 Java未修改

Controller superClass中有幾種​​方法:ok(),noContent()等,但不是notModified()。在play.api.mvc.Results

val NotModified = SimpleResult(header = ResponseHeader(NOT_MODIFIED), body = Enumerator.empty, 
connection = HttpConnection.KeepAlive) 

看着玩耍的源代碼,我可以看到。但是,如何將SimpleResult包裝在Java控制器可以返回的東西中?

方法要返回一個結果:

public interface Result { 
    scala.concurrent.Future<play.api.mvc.SimpleResult> getWrappedResult(); 
} 

,但我不知道如何從Java生成的未來。 (我試圖與scala.concurrent.Future $ .MODULE $ ...但它是不可見的,我的Java代碼)

回答

1

而不是像OK(),試試這個:

return status(304, "Content not modified, dude."); 

參考:http://www.playframework.com/documentation/2.2.0/JavaActions

它看起來像play.api.mvc.Results,在Scala API中,實際上有一個NotModified生成器,但Java API沒有。如果您使用Java API,則無法使用Scala API中的任何內容。看起來像Java API是Play Framework的不受歡迎的孩子。

總之,返回狀態304比試圖從Play Scala API拖入組件並從Java中使用它們要簡單得多。 HTTP響應代碼304 =內容未修改。

請看這裏的代碼列表:http://www.w3.org/Protocols/HTTP/HTRESP.html