我们正在开发一个应用程序,我们将使用 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":"测试","resolvingClass":null,"templateNameAbsolute":true}
我提到了this blog post也一样,但徒劳无功。
我有两个问题:
- 从 ReST 服务响应中返回 JSP 真的可以实现吗?
- 如果是,是不是我遗漏了什么?
最佳答案
这是通过使用 temporaryRedirect
或 Response
解决的:
Response.temporaryRedirect(URI.create("REQUIRED_URL").build();
关于java - 在 ReST 响应中返回 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26340527/