綜觀播放的源代碼(播放1.1)在play.mvc.Http.StatusCode
對象,播放似乎有以下代碼
public static final int OK = 200;
public static final int CREATED = 201;
public static final int ACCEPTED = 202;
public static final int PARTIAL_INFO = 203;
public static final int NO_RESPONSE = 204;
public static final int MOVED = 301;
public static final int FOUND = 302;
public static final int METHOD = 303;
public static final int NOT_MODIFIED = 304;
public static final int BAD_REQUEST = 400;
public static final int UNAUTHORIZED = 401;
public static final int PAYMENT_REQUIERED = 402;
public static final int FORBIDDEN = 403;
public static final int NOT_FOUND = 404;
public static final int INTERNAL_ERROR = 500;
public static final int NOT_IMPLEMENTED = 501;
public static final int OVERLOADED = 502;
public static final int GATEWAY_TIMEOUT = 503;
這將表明您的部分已經確定了碼的確認時,如201中,然而,值307,405,406,409,410和415不在那裏。
另外,201,202,204被確認,但不被引用的其他地方的源代碼內。所以,除非Netty的服務器,或提供的jar文件中的一個管理這些用於播放(這我不知道它可以做),我看不出玩就怎麼能神奇地處理這些情況不知道代碼庫。
查看renderJSON的代碼,它不會將狀態碼設置爲發回結果的一部分(因此使用默認值200),因此以下hack 可能會工作。
public static void myJsonAction() {
response.status = 201;
renderJSON(jsonString); // replace with your JSON String
}
我測試了設置'response.status'果然,它就是這麼簡單。 – 2010-12-23 02:34:58
這個常量在Play 2.x中有什麼想法? Play 2.x Scala如何? – 2015-07-02 03:32:07
找到Scala 2.x響應代碼play.api.mvc.Results#NoContent – 2015-07-02 05:21:03