Моля, позволете ми да предговоря това, като кажа, че съм почти нов в уеб разработката на Java, така че се надявам, че обяснявам този проблем правилно.
Наследих уебсайт за wicket от приятел, който замина за по-зелени пасища и имаше искане да помолим новите потребители да включат своята раса и етническа принадлежност при регистрация в уебсайта. Така че добавих подходящите въпроси към страницата... засега добре.
Проблемът, който получавам сега, е, че когато изпратя страницата, новите стойности изглежда не се актуализират. Ще публикувам тук кода за расовия въпрос, но въпросът за етническата принадлежност е почти идентичен. Може да е важно да се отбележи, че потребителят трябва да може да избере повече от едно състезание или изобщо да не избира състезания, когато се регистрира.
Моята подходяща надценка:
<span wicket:id="selectOneOrMoreRaces">Select one or more races to indicate what you consider yourself to be.</span>
<br />
<span class="field" wicket:id="races">
<span wicket:id="races">
<input wicket:id="races.value" type="checkbox" />
<span wicket:id="racDesc" style="font-weight:normal;">Race Text</span>
<br />
</span>
</span>
Ето част от кода за тази страница:
String raceQuestion = fhDAO.getRaceQuestion();
Label selectOneOrMoreRacesLabel = new Label("selectOneOrMoreRaces", new Model(raceQuestion));
add(selectOneOrMoreRacesLabel);
CheckGroup racesCheckGroup = new CheckGroup("races");
add(racesCheckGroup);
ListView races = new ListView("races", fhDAO.getRaceAnswers())
{
protected void populateItem(ListItem item)
{
RaceAnswer access = (RaceAnswer)item.getModelObject();
CheckBox chk = new CheckBox("races.value", new Model(access.getValue()));
item.add(chk);
item.add(new Label("racDesc", access.getDescription()));
}
};
racesCheckGroup.add(races);
Ето модела за RaceAnswers:
public class RaceAnswer implements Serializable
{
private String _description;
private String _value;
public RaceAnswer(String description, String value)
{
_description = description;
_value = value;
}
public String getDescription()
{
return _description;
}
public String getValue()
{
return _value;
}
}
И накрая, съответният код за моето свойство състезания в моя потребителски клас:
private ArrayList<RaceAnswer> race;
public ArrayList<RaceAnswer> getRaces()
{
return race;
}
public void setRaces(ArrayList<RaceAnswer> races)
{
race = races;
}