Witam, piszę prostą stronę w Apache Wicket opierając się na przykładach z
http://wicketstuff.org/ Po kilku dniach zmagań natknełem się na problem, nie moge odczytać danych wprowadzonych do formularza
kod:
public class Add extends BasePage {
public Add() {
add(new AdminPanelBorder("border"));
final FeedbackPanel feedback = new FeedbackPanel("feedback");
add(feedback);
add(new AddWineForm("addForm"));
}
static public final class AddWineForm extends Form<Wine> {
public AddWineForm(final String id) {
super(id);
//titlce field
final TextField<String> name = new TextField<String>("name", new Model<String>());
name.setRequired(true);
name.add(StringValidator.maximumLength(30));
final FormComponentFeedbackBorder titleFeedback = new FormComponentFeedbackBorder("nameFeedback");
add(titleFeedback);
titleFeedback.add(name);
//color choice
List<String> colorList = new ArrayList<String>();
colorList.add("Białe");
colorList.add("Czerwone");
final ListChoice<String> color = new ListChoice("color", new Model<String>(), colorList);
color.setRequired(true);
final FormComponentFeedbackBorder colorFeedback = new FormComponentFeedbackBorder("colorFeedback");
add(colorFeedback);
colorFeedback.add(color);
//taste choice
List<String> tastee = new ArrayList<String>();
tastee.add("Wytrawme");
tastee.add("Półwytrawne");
tastee.add("Słodkie");
tastee.add("Półsłodkie");
final ListChoice<String> taste = new ListChoice<String>("taste", new Model<String>(), tastee);
taste.setRequired(true);
final FormComponentFeedbackBorder tasteFeedback = new FormComponentFeedbackBorder("tasteFeedback");
add(tasteFeedback);
tasteFeedback.add(taste);
//price field
final TextField<String> price = new TextField<String>("price", new Model<String>());
price.setRequired(true);
final FormComponentFeedbackBorder priceFeedback = new FormComponentFeedbackBorder("priceFeedback");
add(priceFeedback);
priceFeedback.add(price);
//description field
final TextArea<String> description = new TextArea<String>("description", new Model<String>());
description.setRequired(true);
description.add(StringValidator.maximumLength(300));
final FormComponentFeedbackBorder descFeedback = new FormComponentFeedbackBorder("descFeedback");
add(descFeedback);
descFeedback.add(description);
}
@Override
public final void onSubmit() {
final Wine wine = getModelObject();
}
}
}
Wydaje mi się, że metoda getModelObject() powinna utworzyć nowy obiekt typu Wine z wartościami podanymi w formularzu, niestety do zmiennej wine przypisany jest null. Bardzo proszę o pomoc :)