在ReST响应中返回JSP

时间:2014-10-13 12:55:14

标签: java jsp rest jersey

我们正在开发一个应用程序,我们使用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,但是徒劳无功。

我有两个问题:

  1. 从ReST服务响应中返回JSP真的可以实现吗?
  2. 如果是的话,是不是我错过了什么?

1 个答案:

答案 0 :(得分:0)

使用temporaryRedirectResponse

解决了这个问题
Response.temporaryRedirect(URI.create("REQUIRED_URL").build();