请帮助我在 vaadin 应用程序的视图之间进行导航。 在 OrdersView 类中,我创建一个像
这样的链接UI.getCurrent().navigate(FullOrderView.class, new RouteParameters("orderId", "123"));
在 FullOrderView 类中,我指定了这样的路线
@Route("order/:orderId")
public class FullOrderView extends AppLayout implements HasUrlParameter<String>{
@Override
public void setParameter(BeforeEvent event, String parameter) {
}
但我收到错误
java.lang.IllegalArgumentException: Navigation target 'com.example.crudwithvaadin.FullOrderView' requires a parameter.
如果我删除“implements HasUrlParameter”和 setParameter() 我会收到错误
No route found for the given navigation target 'com.example.crudwithvaadin.FullOrderView' and parameters '{}'
如何修复错误并正确传递参数? 谢谢!
您正在组合不同的路由器功能。路由模板参数(:orderId)的使用必须与
BeforeEnterObserver
结合使用,而不是 HasUrlParamter
。
出现错误:com.vaadin.flow.router.NotFoundException:找不到给定导航目标的路线 请帮我解决一下。
主布局视图: UI.getCurrent().navigate(DefaultView.class, new RouteParameters("project_Id",selectedProject.getId().toString()));
默认视图: @Route(value = "默认映射", 布局 = MainLayout.class) 公共类 DefaultView 扩展 VerticalLayout 实现 HasUrlParameter { @覆盖 公共无效setParameter(BeforeEvent事件,@OptionalParameter RouteParameters参数){ if (参数!= null ) { 字符串名称=parameter.getParameterNames().toString(); System.out.println("名字......"+names); } } }