JavaResponse - opensas/Play20Es GitHub Wiki
Esta página todavía no ha sido revisada su traducción al castellano. Puedes ayudarnos con la tarea simplemente presionando el botón
Edit Page. Para más información puedes leer esta guía para el traductor. Aquí puedes ver cuánto nos falta para terminar la traducción.
El resultado del tipo de contenido(Content-Type) es automáticamente deducido según el valor Java especificado como el cuerpo.
Por ejemplo:
Result textResult = ok("Hello World!");
Establecerá automáticamente la cabecera del Content-Type a text/plain, mientras:
Result jsonResult = ok(jerksonObject);
Establecerá la cabecera del Content-Type en application/json.
Esto es muy útil, pero a veces se desea cambiar. Sólo tienes que utilizar el metodo as(newContentType) en un resultado para crear uno nuevo similar con otro encabezado Content-Type:
Result htmlResult = ok("<h1>Hello World!</h1>").as("text/html");
También puede configurar el tipo de contenido en la respuesta HTTP:
public static Result index() {
response().setContentType("text/html");
return ok("<h1>Hello World!</h1>");
}
Puede agregar(o actualizar) cualquier encabezado de respuesta HTTP:
public static Result index() {
response().setContentType("text/html");
response().setHeader(CACHE_CONTROL, "max-age=3600");
response().setHeader(ETAG, "xxx");
return ok("<h1>Hello World!</h1>");
}
Tenga en cuenta que establecer una cabecera HTTP descartará automáticamente cualquier valor anterior.
Las Cookies son una forma especial de cabeceras HTTP, pero Play ofrece un conjunto de ayudas para que sea mas fácil.
Fácilmente puede agregar un cookie en la respuesta HTTP:
response().setCookie("theme", "blue");
Además, para descartar una cookie previamente almacenada en el explorador Web:
response().discardCookies("theme");
Para una respuesta de texto en HTTP, es muy importante utilizar correctamente la codificación de caracteres. Play maneja eso por ti y usa por defecto utf-8.
La codificación se utiliza tanto para convertir la respuesta del texto a sus correspondientes bytes para enviarlos a través de la toma de red y agregar la extensión apropiada de ;charset=xxx a la cabecera Content-Type.
La codificación se puede especificar cuando se está generando el valor Result:
public static Result index() {
response().setContentType("text/html; charset=iso-8859-1");
return ok("<h1>Hello World!</h1>", "iso-8859-1");
}
Next: Session and Flash scopes