Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## juzu
Class Response

    java.lang.Object
      juzu.Response

Direct Known Subclasses:
  Response.Content, Response.Redirect, Response.View

    public abstract class Response

extends Object

A response object signalling to the portal the action to take after an interaction. This object is usually returned after the invocation of a controller method and instructs Juzu the action to take.

## Action response

### Redirection response

A `Response.Process.Action.Redirect` response instructs Juzu to make a redirection to a valid URL after the interaction, this kind of response is created using the factory method `redirect(String)`: ``

        return Response.redirect("http://www.exoplatform.org");

### Proceed to render phase

A `Response.View` response instructs Juzu to proceed to the render phase of a valid view controller, this kind of response can be created using an `ActionContext`, however the best way is to use a controller companion class that carries method factories for creating render responses.

Type safe `Response.View` factory method are generated for each view or resource controller methods. The signature of an render factory is obtained by using the same signature of the controller method.

`

        public class MyController {

           @Action
           public Response.View myAction() {
              return MyController_.myRender("hello");
           }

           @View
           public void myRender(String param) {
           }
        }

`

## Mime response

Mime response are used by the `Phase.VIEW` and the `Phase.RESOURCE` phases. Both contains a content to be streamed to the client but still they have some noticeable differences.

The `Response.Content` class is the base response class which will work well for the two phases. However the `Phase.VIEW` can specify an optional title and the `Phase.RESOURCE` can specify an optional status code for the user agent response.

Responses are created using the `Response` factory methods such as

- `ok(java.lang.CharSequence)` creates an ok response
- `notFound(java.lang.CharSequence)` creates a not found response

Response can also created from `Template` directly:

`

        public class MyController {

           @Inject @Path("index.gtmpl") Template index;

           @View
           public Response.Render myView() {
              return index.render();
           }

           @Inject @Path("error.gtmpl")  Template error;

           @Resource
           public Response.Content myView() {
              return error.notFound();
           }
        }

`

The `Template.Builder` can also create responses:

`

        public class MyController {

           @Inject @Path("index.gtmpl") index index;

           @View
           public Response.Content myView() {
              return index.with().label("hello").render();
           }
        }

`

Author:
  Julien Viet

Nested Class Summary
`static class` | `Response.Content<S extends Stream>`
`static class` | `Response.Redirect` A response instructing to execute an HTTP redirection after the current interaction.
`static class` | `Response.Render`
`static class` | `Response.View` A response instructing to execute a render phase of a controller method after the current interaction.

Method Summary
`static Response.Content<Stream.Char>` | `content(int code, CharSequence content)`
`static Response.Content<Stream.Binary>` | `content(int code, InputStream content)`
`static Response.Content<Stream.Char>` | `content(int code, Streamable<Stream.Char> content)`
`PropertyMap` | `getProperties()`
`static Response.Content<Stream.Char>` | `notFound(CharSequence content)`
`static Response.Content<Stream.Char>` | `ok(CharSequence content)`
`static Response.Content<Stream.Binary>` | `ok(InputStream content)`
`static Response.Redirect` | `redirect(String location)`
`static Response.Render` | `render(CharSequence content)`
`static Response.Render` | `render(String title, CharSequence content)`
`
`<T> Response`
` | `with(PropertyType<T> propertyType, T propertyValue)` Set a property, if the value is null, the property is removed.
`Response` | `withHeader(String name, String... value)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### with

    public <T> Response with(PropertyType<T> propertyType,
                             T propertyValue)
                  throws NullPointerException

  Set a property, if the value is null, the property is removed.

  Parameters:
    `propertyType` - the property type
    `propertyValue` - the property value
  Throws:
    `NullPointerException` - if the property type is null

### getProperties

    public final PropertyMap getProperties()

### withHeader

    public Response withHeader(String name,
                               String... value)

### redirect

    public static Response.Redirect redirect(String location)

### render

    public static Response.Render render(CharSequence content)

### render

    public static Response.Render render(String title,
                                         CharSequence content)

### ok

    public static Response.Content<Stream.Char> ok(CharSequence content)

### ok

    public static Response.Content<Stream.Binary> ok(InputStream content)

### notFound

    public static Response.Content<Stream.Char> notFound(CharSequence content)

### content

    public static Response.Content<Stream.Char> content(int code,
                                                        CharSequence content)

### content

    public static Response.Content<Stream.Char> content(int code,
                                                        Streamable<Stream.Char> content)

### content

    public static Response.Content<Stream.Binary> content(int code,
                                                          InputStream content)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2013 eXo Platform SAS. All Rights Reserved.