如何将Alfresco网页脚本重定向到其他响应页面

时间:2018-11-05 15:48:09

标签: java alfresco alfresco-webscripts

我已经定义了用Java实现的Alfresco Repo Web脚本,该脚本将模板文件夹结构复制到站点的文档存储库中。

此Webscript的Freemarker HTML模板很简单

<html>
    <body>
        <p>Your request was successful</p>
    </body>
</html>

但是我实际上并不希望将其显示给用户。我希望响应页面成为站点的文档存储库。

因此,在我的Java网络脚本代码中,我添加了这一行

@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) {
    ...     
    status.setLocation("http://localhost:8081/share/page/site/my-site/documentlibrary");
    ...
}

我希望可以将响应重定向到url,但是上面的页面仍在呈现。

看看DeclarativeWebScript的代码(我的实现类继承自该代码),我看到了

String location = status.getLocation();
if (location != null && location.length() > 0)
{
  if (logger.isDebugEnabled())
  logger.debug("Setting location to " + location);
  res.setHeader(WebScriptResponse.HEADER_LOCATION, location);
}

要使重定向正常工作,我缺少什么?

1 个答案:

答案 0 :(得分:0)

为答案添加评论-您还需要设置状态重定向代码。 this somewhat hard to find Alfresco document on Java WebScripts and error handling

中对此进行了介绍

您应该添加以下内容:

  status.setCode(Status.STATUS_MOVED_PERMANENTLY);

另请参阅Status object javadocsDeclarativeWebScript