I am using vaadin 24.
**MainLayout:**
UI.getCurrent().navigate(defaultViewClass, new RouteParameters("project_Id",selectedProject.getId().toString()));
**DefaultView:**
@PageTitle("Default Mapping")
@Route(value = "Default-Mapping/:project_Id", layout = MainLayout.class)
@RolesAllowed("USER")
public class DefaultView extends VerticalLayout implements BeforeEnterObserver {
public DefaultView(ProjectsService projectsService) {
this.projectsService = projectsService;
saveBtn.setVisible(false);
editBtn.setVisible(true);
System.out.println("constructor........");
HorizontalLayout hl = new HorizontalLayout();
hl.add(getTabsheet()); // project_Id parameter used in this method
hl.setHeightFull();
hl.setSizeFull();
add(hl);
}
@Override
public void beforeEnter(BeforeEnterEvent event) {
RouteParameters parameters = event.getRouteParameters();
String projectId = parameters.get("project_Id").orElse(null);
if (projectId != null) {
projects = projectsService.findById(Long.parseLong(projectId));
}
}
}
Constructor call before "beforenter" method.
I get project_id value in beforeenter method, but I want while defaultview class load and call constructor. So I can use project_id in getTabsheet method.
Is this navigation right?
How to find correct way?
I have tried different methods, but they are not working. How to communicate with database using id?