2010-03-04 71 views
1

請允許我通過說我幾乎是全新的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; 
    } 
} 

最後,在我的用戶組中我的比賽屬性的相關代碼:

private ArrayList<RaceAnswer> race; 

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

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

回答

1

我終於修好了。 有幾個問題...

首先,我應該一直使用Check而不是CheckBox。 這個改變暴露了我的集合從我的模型中返回爲空的事實,而不僅僅是我期待的空集合(但實例化)。

現在一切都好!

0

我討厭要求更多代碼,因爲您已經發布了相當多的代碼,但困難最常見的是模型如何附加到表單,而表單本身不在您的發佈代碼中,因此張貼更多的表單代碼可能有助於診斷。

與此同時,您可能已經看到了這一點,但在表格中有一個CheckGroup用法的簡單示例,在wicketstuff 1.3 exampleswicketstuff 1.4 examples的示例中可能會有所幫助。