2010-03-04 1 views
1

나는이 문제를 올바르게 설명하고 있기를 바란다.페이지를 제출하면 내 모델이 업데이트되지 않습니다?

나는 푸른 목초지로 떠난 동료에게서 wicket 웹 사이트를 상속 받았으며 신규 사용자에게 웹 사이트 등록시 인종과 민족을 포함하도록 요청하는 요청이있었습니다. 그래서 적절한 질문을 페이지에 추가했습니다 ... 지금까지는 그렇게 좋았습니다.

지금 문제는 페이지를 제출할 때 새로운 값이 업데이트되지 않는 것입니다. 인종 문제에 대한 코드를 여기에 게시 할 예정이지만 인종적 질문은 거의 동일합니다. 등록이 발생할 때 사용자는 하나 이상의 경주 또는 경주가 없음을 선택할 수 있어야합니다.

내 관련 마크 업 : 마지막으로

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

그리고 :

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의 모델이다 :

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

여기에 해당 페이지에 대한 코드의 비트입니다 내 사용자 클래스의 내 경쟁 속성에 대한 관련 코드 :

private ArrayList<RaceAnswer> race; 

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

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

답변

1

마지막으로 수정했습니다. 몇 가지 문제가있었습니다 ...

먼저 CheckBox가 아닌 Check를 사용해야합니다. 이 변경으로 인해 내 컬렉션이 내 모델에서 null로 돌아 왔으며 예상했던대로 비어있는 (그러나 인스턴스화 된) 컬렉션이 반환되지 않았다는 사실이 드러났습니다.

모두 좋다!

0

이미 많은 글을 게시 했으므로 더 많은 코드를 요청하는 것이 싫지만, 모델이 양식에 첨부되는 방법에 가장 어려움이 있으며 양식 자체는 게시 된 코드에 없습니다. 양식 코드를 조금 더 게시하면 진단하는 데 도움이 될 수 있습니다.

한편, 당신은 이미 이것을 보았을 수도 있지만, 예를 들어 wicketstuff 1.3 examples 또는 wicketstuff 1.4 examples에 도움이 될 수있는 형태로 CheckGroup 사용법의 간단한 예가 있습니다.