代码之家  ›  专栏  ›  技术社区  ›  Sonny Boy

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

  •  1
  • Sonny Boy  · 技术社区  · 16 年前

    我继承了一个wicket网站的一个家伙谁已经离开了绿色牧场,有一个要求,要求新用户包括他们的种族和ehthnicity注册到网站上。所以我在页面上添加了适当的问题。。。到现在为止,一直都还不错。

    我现在遇到的问题是,当我提交页面时,新值似乎没有得到更新。 我要把种族问题的代码贴在这里,但种族问题几乎是一样的。可能需要注意的是,当注册发生时,用户应该能够选择多个比赛或根本不选择比赛。

    我的相关加价:

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

    以下是答案的模型:

    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 回复  |  直到 13 年前
        1
  •  1
  •   Sonny Boy    16 年前

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

    首先,我应该使用Check而不是Check。 这一更改暴露了这样一个事实:我的集合从模型返回为null,而不是像我预期的那样只是空的(而是实例化的)集合。

    现在一切都好了!

        2
  •  0
  •   Don Roby    16 年前

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

    wicketstuff 1.3 examples wicketstuff 1.4 examples .