1

我有一个 Sightly 模板,我想将其用作 Apache Sling 错误处理程序。

如何设置状态码?

4

1 回答 1

5

response是 Use-API 对象的全局对象。在 Java 中,您可以从绑定映射中访问这些对象,而在 Use-API 的 JavaScript 实现中,这些全局对象位于全局命名空间中。

Java 使用 API 示例:

public class ErrorHandlerUseObject implements Use {

    @Override
    public void init(Bindings bindings) {
        SlingHttpServletResponse response = (SlingHttpServletResponse) bindings.get(SlingBindings.RESPONSE);
        response.setStatus(403);
    }
}

JavaScript Use-API 示例(假设脚本名称为errorhandler.js):

use(function () {
    response.setStatus(403);
});

在您的 Sightly 模板中,实例化任何已定义的 Use 对象应该可以设置您的响应代码:

<html data-sly-use.errorHandler="ErrorHandlerUseObject">
...
</html>

<html data-sly-use.errorHandler="errorhandler.js">
...
</html>
于 2015-02-20T22:23:42.693 回答