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

如何在Vaadin中通过fetchCurrentURL获取并返回URL值

Vaadin中同步获取fetchCurrentURL返回值的方案

fetchCurrentURL是异步方法,它会向客户端发起请求获取当前URL,结果通过回调函数返回,所以没法像你尝试的那样直接把返回值赋值给字符串变量。可以通过以下两种方式实现需求:

方式一:用CompletableFuture封装异步结果

通过CompletableFuture把回调里的URL路径存起来,后续通过异步回调处理结果(避免阻塞UI线程):

CompletableFuture<String> currentPathFuture = new CompletableFuture<>();

UI.getCurrent().getPage().fetchCurrentURL(url -> {
    currentPathFuture.complete(url.getPath());
});

// 异步处理拿到的路径
currentPathFuture.thenAccept(path -> {
    String s = path;
    // 这里可以做你需要的业务操作,比如打印、赋值给成员变量等
    Notification.show("当前路径:" + s);
});

方式二:使用服务器端维护的位置信息(仅适用于路由同步场景)

如果你的页面路由变化都会同步到服务器(比如使用Vaadin官方路由机制),可以直接用服务器端已有的位置信息,这种是同步获取的:

String s = UI.getCurrent().getPage().getLocation().getPath();
Notification.show(s);

注意:这种方式拿到的是服务器端记录的URL,如果客户端手动修改了URL但没通知服务器,结果会和实际客户端URL不一致。如果需要绝对准确的客户端实时URL,优先用方式一。

内容的提问来源于stack exchange,提问作者Ji Lin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:09:25