Contribute to this guideReport an issue

guide事件

CKFinder 3 for Java 连接器提供了一组事件,可用于更改默认应用程序行为。每个事件都由其类型标识,并且可以被任意数量的侦听器监听。请求生命周期图 可能有助于您了解 CKFinder 连接器何时以及以何种顺序发出哪些事件。

要为给定类型的事件创建侦听器,您需要注册一个组件,该组件实现参数化的Listener 接口。例如,要为 RequestEvent 类型的事件创建事件侦听器,侦听器组件的存根应如下所示。

package com.cksource.ckfinder.listener;

import com.cksource.ckfinder.event.RequestEvent;
import com.cksource.ckfinder.listener.Listener;

import jakarta.inject.Named;

@Named
public class CustomListener implements Listener<RequestEvent> {
    @Override
    public void onApplicationEvent(RequestEvent requestEvent) {
        // Processing logic.
    }
}

# LoadConfigEvent

LoadConfigEvent 仅在应用程序启动时发出一次。此事件表明主要 CKFinder 配置文件刚刚加载。

# GetConfigForRequestEvent

对于每个请求,连接器都会对应用程序启动时创建的主配置对象进行深度复制,此时会发出LoadConfigEventGetConfigForRequestEvent 事件表明为当前 HTTP 请求范围创建了配置的深度副本。

此事件是根据请求动态更改连接器配置的便捷位置。您可能希望使用它,例如,更改后端根目录 定义,以便应用程序的每个用户都拥有由 CKFinder 管理的私有目录(请参阅每个用户的私有文件夹 教程)。

# RequestEvent

连接器收到 HTTP 请求时发出的事件。如果其中一个侦听器为事件对象设置了ResponseEntity,则 HTTP 响应会立即发送到客户端。

# ResolveCommandEvent

发出此事件是为了获得Command 的具体类,以处理当前的 HTTP 请求。

# BeforeCommandEvent

在解析特定命令后,即决定应使用哪个命令类来处理当前请求时,会发出BeforeCommandEvent

在事件侦听器中,可以提供将在命令之前执行的任何其他代码。如果其中一个侦听器为事件对象设置了ResponseEntity,则 HTTP 响应会立即发送到客户端。

# AfterCommandEvent

在具体的Command 返回ResponseEntity 后,会发出AfterCommandEvent。这是 CKFinder 完成处理命令逻辑并即将将 HTTP 响应发送回客户端的时刻。

# ResponseEvent

在创建ResponseEntity 对象后,会发出ResponseEvent。您可以使用它在组装 HTTP 响应并将其发送到客户端之前修改或替换ResponseEntity

# ExceptionEvent

如果在处理当前 HTTP 请求期间发生任何错误,将发出ExceptionEvent