2013-10-26 3 views
1

Я использую playframework 2.2.0 с Java. Как я могу вернуть Not Modified из моих действий с контроллером?Playframework 2.2 Java notModified

В суперклассе контроллера есть несколько методов: ok(), noContent() и т. Д., Но не notModified().

Глядя на исходный код для игры можно увидеть:

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

в play.api.mvc.Results. Но как я могу обернуть SimpleResult в чем-то, что может быть возвращено контроллером Java?

метод хочет вернуть Результат:

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

, но я не знаю, как создать будущее с Java. (Я попытался с scala.concurrent.Future $ .module $ ... но это не видно моего кода Java)

ответ

1

Вместо того что-то вроде ок(), попробуйте следующее:

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 этого не делает. Вы не можете использовать что-либо из Scala API, если собираетесь использовать Java API. Похоже, что Java API - это нелюбимый ребенок Play Framework.

Таким образом, возвращаемый статус 304 намного проще, чем пытаться перетащить компоненты из API Play Scala и использовать их с Java. Код ответа HTTP 304 = Содержимое не изменено.

Просмотреть список кодов здесь: http://www.w3.org/Protocols/HTTP/HTRESP.html

Смежные вопросы