2012-03-24 7 views
0

に見られていませんここが、列リストビューにモデルを渡す必要はありませんので、doesntのラベルデータは、私はコンポーネントのラベル<br> を使用してデータというデータ&ディスプレイを取るしようとしていますが、そのデータは、すべてのラベルがテーブル行に&行incresesあるページ<br> に見られていないリストから来ているが、ページ

package com.cerebrum.pages;  

    import java.util.ArrayList; 

    import java.util.List;  

    import org.apache.wicket.markup.html.basic.Label; 
    import org.apache.wicket.markup.html.form.Form; 
    import org.apache.wicket.markup.html.list.ListItem; 
    import org.apache.wicket.markup.html.list.ListView; 
    import org.apache.wicket.model.CompoundPropertyModel; 
    import org.apache.wicket.model.PropertyModel; 

    import com.cerebrum.common.Home; 
    import com.cerebrum.hibernate.AddForumSubCategoryEntity; 
    import com.cerebrum.hibernate.ForumHome; 
    import com.cerebrum.pojo.ForumModel; 
    public class Forum extends Home 
    { 
    ForumHome forumHome=new ForumHome(); 
    ForumModel forumModel=new ForumModel(); 
    List<ForumModel> listForum=new ArrayList<ForumModel>(); 
    public Forum() 
    { 
     super(); 
     add(new ForumForm()); 
    } 
    class ForumForm extends Form 
    { 
    public ForumForm() 
    { 
     super("ForumForm"); 
     setModel(new CompoundPropertyModel(forumModel)); 

     List<AddForumSubCategoryEntity> list=forumHome.getAll(); 
     for(AddForumSubCategoryEntity addForumSubCategoryEntity:list) 
     { 
      listForum.add(new  
     ForumModel(addForumSubCategoryEntity.getMain_key(), 
     addForumSubCategoryEntity.getDescription())); 
     } 

     ListView listView=new ListView("listForum",listForum) 
     { 
      @Override 
      protected void populateItem(ListItem item) 
      { 
       ForumModel model=(ForumModel)item.getDefaultModelObject(); 

       Label lblMainCategory=new Label("lblMainCategory",new  
    PropertyModel(model, "lblMainCategory")); 
       item.add(lblMainCategory); 

       Label lblLastSubCategory=new 
    Label("lblLastSubCategory",new PropertyModel(model, "lblLastSubCategory")); 
       item.add(lblLastSubCategory); 

       Label lblTotalNoofPost=new Label("lblTotalNoofPost",new 
    PropertyModel(model, "lblTotalNoofPost")); 
       item.add(lblTotalNoofPost); 
      } 
     }; 
     listView.setOutputMarkupId(true); 
     add(listView); 
    } 
} 
} 
+0

私はすべてのあなたのモデルで失われています。何をアーカイブしようとしていますか? – bert

答えて

1

は「getListForum」あなたforumModelメソッドを持っている場合、それが良いだろう「listForum」この中間リストを作成しないようにしてくださいます。 (CompoundPropertyModelsがここでどのように働くかを参照してくださいhttps://cwiki.apache.org/WICKET/working-with-wicket-models.html)。

ListViewの内部では、「getModel」ではなく「getDefaultModelObject()」を使用していますが、これをPropertyModelのモデルとして使用していますが、これは奇妙です。

私は完全にあなたのモデル(ARE ForumHomeまたはForumModel実装IModelを?)を理解していないが、私はこのような何かがより良いアプローチであろうと推測:

public class Forum extends Home { 

private ForumHome forumHome = new ForumHome(); 
private ForumModel forumModel = new ForumModel(forumHome); 

public Forum() { 
    super(); 

    add(new ForumForm("ForumForm", forumModel)); 
} 

private static class ForumForm extends Form { 
    public ForumForm(String wicketId, ForumModel forumModel) { 
     super(wicketId, new CompoundPropertyModel(forumModel)); 

     ListView<ForumModel> listView = new ListView<ForumModel>("listForum") { 

      @Override 
      protected void populateItem(ListItem item) { 
       IModel<ForumModel> model = item.getModel(); 

       item.add(new Label("lblMainCategory", new PropertyModel(model, "lblMainCategory"))); 
       item.add(new Label("lblLastSubCategory", new PropertyModel(model, "lblLastSubCategory"))); 
       item.add(new Label("lblTotalNoofPost", new PropertyModel(model, "lblTotalNoofPost"))); 

      } 
     }; 
     listView.setOutputMarkupId(true); 
     add(listView); 
    } 
} 
} 
関連する問題

 関連する問題