Я описал Grid, как описано в инструкции.
@Route
@SpringComponent
public class MainView extends VerticalLayout {
private final UserService userService;
private Label label;
private Grid<UserDto> grid;
public MainView(UserService userService) {
this.userService = userService;
initComponents(userService);
}
private void initComponents(UserService userService) {
initHeader();
initMainGrid(userService);
}
private void initMainGrid(UserService userService) {
grid = new Grid<>(UserDto.class);
grid.setItems(userService.getAll());
grid.addColumn(UserDto::getId).setHeader("ID");
grid.addColumn(UserDto::getUsername).setHeader("Имя пользователя");
grid.addColumn(UserDto::getPassword).setHeader("Пароль");
grid.addColumn(UserDto::getEmail).setHeader("email");
grid.addColumn(UserDto::getPhone).setHeader("Телефон");
grid.addColumn(UserDto::getActive).setHeader("Активен");
add(grid);
}
private void initHeader() {
label = new Label("Список пользователей");
add(label);
}
}
Но данные почему-то дублируются:
Подскажите, почему дублируются данные? Как избавиться от этого?
Разобрался. Теперь класс выглядит так:
@Route
@SpringComponent
public class MainView extends VerticalLayout {
private final UserService userService;
private Label label;
private Grid<UserDto> grid;
public MainView(UserService userService) {
this.userService = userService;
initComponents(userService);
}
private void initComponents(UserService userService) {
initHeader();
initMainGrid(userService);
}
private void initMainGrid(UserService userService) {
grid = new Grid<>(UserDto.class);
grid.setItems(userService.getAll());
Grid.Column<UserDto> id = grid.getColumnByKey("id");
Grid.Column<UserDto> username = grid.getColumnByKey("username");
Grid.Column<UserDto> password = grid.getColumnByKey("password");
Grid.Column<UserDto> email = grid.getColumnByKey("email");
Grid.Column<UserDto> phone = grid.getColumnByKey("phone");
Grid.Column<UserDto> active = grid.getColumnByKey("active");
id.setHeader("ID");
username.setHeader("Имя пользователя");
password.setHeader("Пароль");
email.setHeader("email");
phone.setHeader("Телефон");
active.setHeader("Активен");
List<Grid.Column<UserDto>> columns = Lists.newArrayList(id, username, password, email, phone, active);
grid.setColumnOrder(columns);
add(grid);
}
private void initHeader() {
label = new Label("Список пользователей");
add(label);
}
}
Не очень лаконично, но вроде Vaadin не славится лаконичностью.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть два @Entity - Meal и Restaurant, взаимосвязанные через @OneToMany - ресторан имеет List<Meal> mealListВот сущности (геттеры и сеттеры намеренно не указал, но в коде...