从sightly java调用错误组件

时间:2017-05-11 04:22:21

标签: aem sightly aem-6

我有一个正常的java类(包含在组件中的java类),它调用api并检查响应是否为null。如果为null,我必须调用错误组件。当我将响应状态设置为404时,它不起作用,因为在执行该行之前,它将响应作为200.在这种情况下如何调用错误组件。 注意:我已尝试将网址重定向到error.html,但这不是正确的解决方案。

1 个答案:

答案 0 :(得分:0)

从组件/视图重定向或更改响应状态通常是不好的做法,因为响应可能已经有一些已提交的内容。

您可能希望将应用程序重新设计为:

  1. 在请求处理开始时调用远程API,如果远程API返回null,则在将任何其他内容提交给响应之前返回404。
  2. 通过以下任一方式处理来自远程API的空响应:
    • 如果在某些情况下预期/允许空响应,则呈现适当的响应。
    • 如果不期望空响应,则抛出异常,这将导致状态500。