You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GetHolidays服务添加至工作台左侧菜单并实现点击自动执行?

菜单点击自动执行无参数服务请求的实现方案

我已经定义了一个无需任何参数(无用户输入参数或隐式参数)的服务请求类GetHolidays,它会返回Holiday实例列表,代码如下:

GetHolidays extends ServiceRequest {
    @Override
    EvalContext<Holiday> eval(Evaluator<ServiceRequest> evaluator);
}

现在需要在初始化托管Folder实例的方法中添加逻辑,让点击该菜单条目时自动执行这个服务,现有初始化代码如下:

@Managed
private Folder holidaysAction() {
    Folder bean = create(Folder.T).initFolder("holidays", "Holidays");
    bean.setIcon(icons.holidayIcon());
    
    // TODO add code for GetHolidays here
    return bean;
}

修改后的完整代码

@Managed
private Folder holidaysAction() {
    Folder bean = create(Folder.T).initFolder("holidays", "Holidays");
    bean.setIcon(icons.holidayIcon());
    
    // 给菜单绑定点击事件,触发GetHolidays服务执行
    bean.setAction(() -> {
        // 实例化无参数的服务请求
        GetHolidays getHolidays = new GetHolidays();
        // 获取框架提供的Evaluator并执行服务
        EvalContext<Holiday> evalContext = getHolidays.eval(getEvaluator(ServiceRequest.class));
        // 这里可以根据业务需求处理返回的Holiday列表
        // 比如把数据渲染到界面、存入状态容器等
        // 示例:evalContext.subscribe(holidayList -> { /* 处理逻辑 */ });
    });
    
    return bean;
}

关键逻辑说明

  • 调用setAction()方法为Folder菜单条目绑定点击回调,用户点击菜单时就会触发这段逻辑
  • 直接实例化GetHolidays(因为无参数,不需要传入任何配置)
  • 通过getEvaluator(ServiceRequest.class)获取框架全局的Evaluator实例(这是框架标准的服务执行入口)
  • 调用服务的eval()方法执行请求,得到包含Holiday列表的EvalContext
  • 最后根据业务场景处理返回的结果,比如更新UI、存储数据等

内容的提问来源于stack exchange,提问作者Qrisz Dhina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:05:21