Using Jersey 2.0 with JSP



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

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

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

@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>

正如@Werner vester所提到的,这在Jersey 2.0中还没有提供。

如果您确实需要这样做,那么如果您编写一个转发到JSP的MessageBodyWriter,可能会得到一个解决方案。我想这就是在泽西1号处理Viewable的方式。x(使用解析JSPTemplateProcessorViewableMessageBodyWriter)或类似于CXF的RequestDispatcherProvider为JSP重定向所做的事情。

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

在Jersey 2.0中,使用下列代码加载jsp页面。

& lt; dependency>,,,,,, & lt; groupId> org.glassfish.jersey.ext
,,,,,,& lt; artifactId> jersey-mvc-jsp
,,,,,,& lt; version> $ {jersey2.version} & lt;/version>
& lt;/dependency>

在你的代码中如果模型被发送到jsp,像这样使用:
返回新的可视("/index . jsp"模型),

如果没有模型发送到jsp,这样使用:

返回new Viewable("/index.jsp", null);,,,,,,,,,,,,或
返回新的可视("/index . jsp ");

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

最新更新