在 Sightly 中设置响应状态代码

Setting the response status code in Sightly

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

如何设置状态码?

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

Java使用-API例子:

public class ErrorHandlerUseObject implements Use {

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

Java脚本使用-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>