1

我们在 Jersey 1.x 中使用 加载 JSP 页面com.sun.jersey.api.view.Viewable,例如:

@GET
public Viewable get() {
return new Viewable("/myPage.jsp", "");
}

Jersey 2.0 中上述的等效代码是什么?

4

4 回答 4

2

@Ankur 谢谢

import org.glassfish.jersey.server.mvc.Viewable;

@Path("/")
public class MyController {

    @GET
    @Produces("text/html")
    public Response index() {
        return Response.ok(new Viewable("/index.jsp")).build();
    }

}

pom.xml

<dependency>
  <groupId>org.glassfish.jersey.ext</groupId>
   <artifactId>jersey-mvc-jsp</artifactId>
   <version>2.21</version>
</dependency>
于 2018-03-15T20:15:44.207 回答
1

正如@Werner Vesterås 所提到的,这在 Jersey 2.0 中尚不可用。

MessageBodyWriter但是,如果您绝对需要这个,那么如果您编写一个转发到 JSP的方法,则可能会得到解决方法。我认为这Viewable就是 Jersey 1.x 中的处理方式(使用 aViewableMessageBodyWriter解析 a JSPTemplateProcessor)或类似于 CXFRequestDispatcherProvider对 JSP 重定向所做的处理。

请注意,尽管JAX-RS 2.0 规范仍然是一个草案,而Jersey 2.0 仍然是一个里程碑,因此可能会发生实施变化。如果您打算在生产环境中使用它,您可能应该重新考虑并坚持使用 Jersey 1.x。

于 2013-01-04T21:40:19.227 回答
1

在 Jersey 2.0 中,使用下面来加载 jsp 页面。
<dependency>
          <groupId>org.glassfish.jersey.ext</groupId>
           <artifactId>jersey-mvc-jsp</artifactId>
           <version>${jersey2.version}</version>
</dependency>

在您的代码中,如果将模型发送到 jsp,请像这样使用:
return new Viewable("/index.jsp", model);

如果没有模型被发送到jsp,像这样使用:
return new Viewable("/index.jsp", null);
                    或
return new Viewable("/index.jsp");

于 2017-08-27T15:15:01.013 回答
0

根据http://java.net/projects/jersey/lists/dev/archive/2012-12/message/2,该功能尚未移植到 Jersey 2.0。

于 2013-01-04T20:00:49.773 回答