我们使用com.sun.jersey.api.view.Viewable
在Jersey 1.x中加载JSP页面,例如:
@GET
public Viewable get() {
return new Viewable("/myPage.jsp", "");
}
Jersey 2.0中上述内容的等效代码是什么?
答案 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 draft和Jersey 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”);