2010-07-29 6 views
7

Реализация JAX-RS Джерси поддерживает веб-приложения в стиле MVC через класс Viewable, который является контейнером для имени шаблона и объекта модели. Это used like this:Джерси Доступно с кодом состояния

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

Интересно, как код состояния может быть возвращен с таким подходом. Вышеизложенное неявно возвращает 200, но это не подходит в любом случае. Есть ли способ явно указать код состояния?

ответ

12

Вам необходимо будет вернуть Response с правильным кодом состояния и заголовками, содержащими Viewable, например:

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

Иногда это проще, чем вы думаете! – deamon

5

Хмм вы можете создать пользовательский объект Response джерси таким образом: это вернет 200:

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

, чтобы вернуть что-то иное использование этого подхода:

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

Надежда, что помогает ... .