В моем проекте у меня есть соединение с базой данных jpa, где я храню упражнения. Я прочитал все упражнения из базы данных и сохранил их в переменной allExercises . После этого я сохраняю название каждого упражнения в кнопке, добавляю их в поле для GUI, а также добавляю событие прослушивания click , которое обрабатывает переход к следующему представлению. Следующий вид представляет собой подробный вид выбранного упражнения. Чтобы узнать, на какое упражнение я нажал, я хочу передать id объекта упражнения в качестве параметра . На данный момент у меня есть следующий код:
for(Exercise exercise : allExercises) {
// create new button with exercise title
Button bt = new Button(exercise.getTitle());
// add button to box
boxExerciseTitle.add(bt);
// add action event
bt.addClickListener(e -> UI.getCurrent().navigate(ExerciseDetailView.class, exercise.getId()));
}
Этот код не работает. Существует проблема с идентификатором, соответственно, что функция навигации не обрабатывает эти два аргумента.
Моя цель - прочитать параметр в подробном представлении следующим образом:
public class ExerciseDetailView extends VerticalLayout implements View{
@Override
public void enter(ViewChangeEvent event) {
String myPassedId = event.getParameters();
...
}
}
Как я могу изменить свой код, чтобы я мог передавать идентификатор в качестве параметра в Vaadin?