我已经定义了用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);
}
要使重定向正常工作,我缺少什么?
答案 0 :(得分:0)
为答案添加评论-您还需要设置状态重定向代码。 this somewhat hard to find Alfresco document on Java WebScripts and error handling
中对此进行了介绍您应该添加以下内容:
status.setCode(Status.STATUS_MOVED_PERMANENTLY);