Джерси Просмотр с кодом состояния - PullRequest
8 голосов
/ 29 июля 2010

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

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

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

Ответы [ 2 ]

14 голосов
/ 29 июля 2010

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

@GET
public Response get() {
  return Response.status(myCode).entity(new Viewable("/index", "FOO")).build();
}
5 голосов
/ 29 июля 2010

Хм, вы можете создать собственный объект 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();
}

Надеюсь, это помогло ....

...