Я пытаюсь получить Id выбранного варианта на DropDownChoice, но получаю ошибку. Я знаю, что при выборе значения я просто обновляю модель, а не объект (отражение).Я ожидал получить все значения объекта «Пользователь» через getModelObject (), но все, что я получил, это NullPointerException .. Я пробовал много вещей в соответствии с учебниками и документацией Wicket 8, но, похоже, ничего не работает ..
Мой код выглядит так:
// POJO
class User {
private Integer id;
private String name;
[...]
}
// Main.class
private User selected;
ChoiceRenderer<User> choiceRenderer = new ChoiceRenderer<User>("id", "name");
List<User> list = getUsers();
final DropDownChoice<User> dropdown1 = new DropDownChoice<User>("dropdown",
new PropertyModel<User>(this, "selected"), list, choiceRenderer);
Button btn = new Button("btn") {
private static final long serialVersionUID = 1L;
@Override
public void onSubmit() {
RecrRemoteOperations recr = new RecrRemoteOperations();
try {
// NullPointerException!
// Integer id = dropdown.getModel().getObject().getId();
// id: the id of the selected "User" value on dropdown
recr.updateCommand(id);
} catch (Throwable e) {
e.printStackTrace();
}
}
}.setDefaultFormProcessing(false);
private static List<User> getUsers() {
List<User> allUsers = new ArrayList<User>();
[...]
return list;
}