使用Jersey 2.0和JSP

时间:2013-01-04 15:16:34

标签: jsp rest jersey jax-rs

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

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

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

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

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

答案 2 :(得分:1)

正如@WernerVesterås所说,泽西岛2.0尚未推出。

如果你绝对需要这个,那么如果你编写一个转发到JSP的MessageBodyWriter,可能会有一个解决方法。我认为这是在Jersey 1.x中处理Viewable的方式(使用ViewableMessageBodyWriter解析JSPTemplateProcessor)或类似于CXF的RequestDispatcherProvider正在为JSP重定向做的事情。

请注意JAX-RS 2.0 spec is still a draftJersey 2.0 is still a milestone,因此需要执行更改。如果您打算在生产环境中使用它,您应该重新考虑并坚持使用Jersey 1.x。

答案 3 :(得分:1)

在Jersey 2.0中,使用以下内容加载jsp页面 的&LT;依赖性&GT;
&LT;&的groupId GT; org.glassfish.jersey.ext&LT; /&的groupId GT;
&LT; artifactId的&GT;球衣-MVC-JSP&LT; / artifactId的&GT;
&LT;版本&GT; $ {jersey2.version}&LT; /版本&GT;
&LT; /依赖性&GT;

在你的代码中, 如果将模型发送到jsp,请使用如下:
返回新的Viewable(“/ index.jsp”,型号);

如果没有模型发送到jsp,请使用如下:
返回new Viewable(“/ index.jsp”,null);
OR
返回新的Viewable(“/ index.jsp”);