我们在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
如果您确实需要这样做,那么如果您编写一个转发到JSP的MessageBodyWriter
,可能会得到一个解决方案。我想这就是在泽西1号处理Viewable
的方式。x(使用解析JSPTemplateProcessor
的ViewableMessageBodyWriter
)或类似于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。