【问题标题】:Jersey Viewable with status code带有状态码的泽西岛可视
【发布时间】:2010-07-29 11:16:00
【问题描述】:

JAX-RS 实现 Jersey 通过 Viewable 类支持 MVC 样式的 Web 应用程序,该类是模板名称和模型对象的容器。是used like this:

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

我想知道如何使用这种方法返回状态代码。以上将隐式返回200,但这在任何情况下都不合适。有没有办法明确设置状态码?

【问题讨论】:

    标签: java jersey jax-rs http-status-codes


    【解决方案1】:

    您必须返回一个 Response 设置,其中包含正确的状态代码和包含您的 Viewable 的标头,例如:

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

    【讨论】:

    • 有时它比你想象的要容易!
    【解决方案2】:

    嗯,您可以在球衣中创建自定义响应对象: 这将返回 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();
    }
    

    希望对您有所帮助....

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2016-01-27
      • 2011-12-30
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2014-10-06
      相关资源
      最近更新 更多