2010-07-29 11 views
7

La Jersey di implementazione JAX-RS supporta le applicazioni Web in stile MVC tramite la classe Viewable, che è un contenitore per un nome modello e un oggetto modello. E 'used like this:Jersey visualizzabile con codice di stato

@GET 
public Viewable get() { 
    return new Viewable("/index", "FOO"); 
} 

mi chiedo come un codice di stato potrebbe essere restituito con questo approccio. Quanto sopra implicitamente restituirebbe 200, ma ciò non sarebbe appropriato in ogni caso. C'è un modo per impostare un codice di stato in modo esplicito?

risposta

12

Sarà necessario restituire un Response configurato con il codice di stato e le intestazioni corretti contenenti il ​​numero Viewable, ad es .:

@GET 
public Response get() { 
    return Response.status(myCode).entity(new Viewable("/index", "FOO")).build(); 
} 
+1

A volte è più facile di quanto si pensi! – deamon

5

Hmm è possibile creare l'oggetto Response personalizzato in jersey di questa convenzione: Ciò restituirà una 200:

@GET 
public Response get() { 
    URI uri=new URI("http://nohost/context"); 
    Viewable viewable=new Viewable("/index", "FOO"); 
    return Response.ok(viewable).build(); 
} 

restituire qualcosa di diverso uso di questo approccio:

@GET 
public Response get() { 
    int statusCode=204; 
    Viewable myViewable=new Viewable("/index","FOO"); 
    return Response.status(statusCode).entity(myViewable).build(); 
} 

Speranza che ha aiutato ...

Problemi correlati