提交页面是不是在更新我的模型?

时间:2010-03-04 22:25:31

标签: java wicket

请允许我在前言中说我对java web开发非常陌生,所以我希望我能正确解释这个问题。

我从一位已离开绿色牧场的人那里继承了一个检票口网站,并要求新用户在网站注册时加入他们的种族和多样性。所以我已经在网页上添加了相应的问题......到目前为止一直很好。

我现在遇到的问题是,当我提交页面时,新值似乎没有得到更新。 我将在这里发布代码以解决种族问题,但种族问题几乎完全相同。重要的是要注意,当注册发生时,用户应该能够选择多个种族或根本没有种族。

我的相关加价:

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

2 个答案:

答案 0 :(得分:1)

我终于修好了。 有几个问题......

首先,我应该使用Check而不是CheckBox。 这个变化暴露了这样一个事实,即我的集合从我的模型中返回为null,而不仅仅是我期待的空集(但是实例化的集合)。

现在好了!

答案 1 :(得分:0)

我讨厌要求更多代码,因为您已经发布了相当多的代码,但最常见的是模型如何附加到表单上,而且表单本身不在您发布的代码中,因此发布更多的表单代码可能有助于诊断。

与此同时,您可能已经看到它可以实现这一目标,但是在wicketstuff 1.3 exampleswicketstuff 1.4 examples的示例中可能有用的表格中有一个简单的CheckGroup用法示例。