2010-07-29 13 views
7

L'implémentation JAX-RS Jersey prend en charge les applications Web de style MVC via la classe Viewable, qui est un conteneur pour un nom de modèle et un objet de modèle. Il est used like this:Jersey Visualisable avec le code d'état

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

Je me demande comment un code d'état pourrait être retourné avec cette approche. Ce qui précède retournerait implicitement 200, mais cela ne serait pas approprié dans tous les cas. Existe-t-il un moyen de définir un code d'état explicitement?

Répondre

12

Vous devrez retourner un Response mis en place avec le bon code et les en-têtes contenant votre Viewable, par exemple:

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

Parfois, c'est plus facile que vous ne le pensez! – deamon

5

Hmm, vous pouvez créer un objet de réponse personnalisé en jersey ainsi: cela va retourner un 200:

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

retourner quelque chose de différent utiliser cette approche:

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

Espoir qui a aidé ...