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

Vaadin 23中如何同时携带路由参数与查询参数进行UI导航?

如何在Vaadin中同时传递路由参数与查询参数进行页面导航

你需要使用UI.getCurrent().navigate()的重载方法,同时传入目标视图类、路由参数,以及包含查询参数的NavigationOptions对象。

Vaadin中,路由参数(URL路径里的占位符部分,比如示例中的a90bd8a9-0de8-4a10-ba82-e5a059eb861e)由RouteParameters处理;而查询参数(URL中?之后的键值对)需要通过QueryParameters构建,再封装到NavigationOptions中传递。

完整代码示例如下:

// 1. 构建查询参数
QueryParameters queryParams = QueryParameters.simple("job_id", "100");

// 2. 创建导航选项并设置查询参数
NavigationOptions navigationOptions = new NavigationOptions();
navigationOptions.setQueryParameters(queryParams);

// 3. 执行导航,同时传入路由参数和导航选项
UI.getCurrent().navigate(
    ViewCandidateView.class,
    new RouteParameters(ViewCandidateView.PROFILE_UUID_PARAMETER, profileDecisionMatrix.getDecision().getUuid()),
    navigationOptions
);

也可以简化为链式调用,让代码更紧凑:

UI.getCurrent().navigate(
    ViewCandidateView.class,
    new RouteParameters(ViewCandidateView.PROFILE_UUID_PARAMETER, profileDecisionMatrix.getDecision().getUuid()),
    new NavigationOptions().setQueryParameters(QueryParameters.simple("job_id", "100"))
);

执行这段代码后,生成的URL将符合你的需求:/candidates/a90bd8a9-0de8-4a10-ba82-e5a059eb861e?job_id=100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:10:46