我们正在开发一个使用Jersey-ReST公开服务的应用程序。在某些情况下,我们需要返回JSP而不是仅返回JSON响应。我在互联网上进行了搜索,找到了实现此目标的一些方法。以下是我到目前为止完成的配置:
Web.xml
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>in.test.resource.MyApp</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/WEB-INF/jsp</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
ReST资源Java类
@GET
@Path("/somePath")
public Response getPickListItems(@QueryParam("name") String name) {
// business logic
return Response.ok(new Viewable("/myJsp.jsp", "Test")).build();
}
现在,当我在浏览器中点击URL时,只能将其作为响应:
{"templateName":"/myJsp.jsp","model":"Test","resolvingClass":null,"templateNameAbsolute":true}
我也提到了this blog post,但徒劳无功。
我有两个问题:
从ReST服务响应中返回JSP真的可以实现吗?
如果是,我是否缺少某些东西?
最佳答案
这是通过使用temporaryRedirect
或Response
解决的:
Response.temporaryRedirect(URI.create("REQUIRED_URL").build();