2010-03-04 2 views
1

Пожалуйста, позвольте мне предисловие к этому, сказав, что я почти совершенно новичок в разработке веб-сайтов java, поэтому надеюсь, что правильно объясню эту проблему.Отправка страницы не обновляет мою модель?

Я унаследовал веб-сайт калитки от человека, который уехал на более зеленые пастбища, и было предложено попросить новых пользователей включить их расы и эфеменцию при регистрации на веб-сайт. Поэтому я добавил соответствующие вопросы на страницу ... пока все хорошо.

Проблема, которую я получаю сейчас, заключается в том, что когда я отправляю страницу, новые значения, похоже, не обновляются. Я собираюсь опубликовать здесь код для расового вопроса, но вопрос об этничности почти идентичен. Возможно, важно отметить, что пользователь должен иметь возможность выбирать более одной гонки или вообще не участвовать в гонках при регистрации.

Моя соответствующая наценка:

<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; 
    } 
} 

И, наконец, соответствующий код для моего имущества races в моем классе пользователя:

private ArrayList<RaceAnswer> race; 

public ArrayList<RaceAnswer> getRaces() 
{ 
    return race; 
} 

public void setRaces(ArrayList<RaceAnswer> races) 
{ 
    race = races; 
} 

ответ

1

Я, наконец, исправил это. Была пара проблем ...

Во-первых, я должен был использовать Check, а не CheckBox. Это изменение выявило тот факт, что мои коллекции возвращались как null из моей модели, а не только пустые (но созданные экземпляры) коллекции, как я ожидал.

Все хорошо сейчас!

0

Мне не нравится запрашивать больше кода, как вы уже опубликовали, но трудности чаще всего связаны с тем, как модели привязаны к форме, а сама форма не находится в вашем опубликованном коде, поэтому размещение немного больше кода формы может помочь диагностировать.

Между тем, возможно, вы уже видели, как он зашел так далеко, но есть простой пример использования CheckGroup в форме, которая может быть полезной среди примеров в wicketstuff 1.3 examples или wicketstuff 1.4 examples.

Смежные вопросы