1

リストをデバッグすると、間接リストがインスタンス化されていないと表示されます。しかし、JPAでは怠惰にフェッチされます。リストビューでレンダリングされていませんが、ノードが必要です。何か不足していますか?

//.....code......
private ListView<String> reqs; // Requirements
private Label lblreqs;  //Label for repeat requirements
//...code...
    final LigaBaseball lbb = LigaBBServ.buscarPorID(Integer
            .parseInt(idLiga)); //Get Baseball league from database

    if (lbb == null || pageParameters == null
            || pageParameters.get("idLiga") == null)
        throw new RestartResponseException(VerLigas.class); //If null redirect.
//...code...

    add(reqs = new ListView<String>("reqs", new ListModel<String>(lbb.getRequisitos()))//LAZYly get List from LigaBaseball(BaseballLeague) {
        @Override
        protected void populateItem(ListItem<String> item) {
        /*When I debug item is null
*/
            item.add(lblreqs = new Label("lblreqs", (item.getModelObject())));
        }
    });

//...code...
4

1 に答える 1

1

ええと...投稿されたコードから作成されたこの(かなりミニマリストの)UnitTestによると、そうですが、おそらく私は要点を見逃しています...

package net.unbewaff;

public class DemoTestCase {

    private WicketTester tester = new WicketTester();
    private Panel panel = new MyPanel("panel");

    @Test
    public void testIt() {
        tester.startComponentInPage(panel);
        tester.assertComponent("panel", Panel.class);
        tester.assertComponent("panel:reqs", ListView.class);
        tester.assertComponent("panel:reqs:0", ListItem.class);
        tester.assertLabel("panel:reqs:0:lblreqs", "1");
        tester.assertComponent("panel:reqs:1", ListItem.class);
        tester.assertLabel("panel:reqs:1:lblreqs", "2");
        tester.assertComponent("panel:reqs:2", ListItem.class);
        tester.assertLabel("panel:reqs:2:lblreqs", "3");
        tester.assertComponent("panel:reqs:3", ListItem.class);
        tester.assertLabel("panel:reqs:3:lblreqs", "4");
    }

    private final class MyPanel extends Panel {

        private MyPanel(String id) {
            super(id);
        }

        public void onInitialize() {
            ListView<String> reqs;

            final LigaBaseball lbb = new LigaBaseball();

            reqs = new ListView<String>("reqs", new ListModel<String>(lbb.getRequisitos())) {

                protected void populateItem(ListItem<String> item) {
                    item.add(new Label("lblreqs", (item.getModelObject())));
                }
            };

            add(reqs);

            super.onInitialize();
        }
    }

    class LigaBaseball {

        public List<String> getRequisitos() {
            String[] a = { "1", "2", "3", "4" };
            return Arrays.asList(a);
        }
    }
}

テストセット:net.unbewaff.DemoTestCase

実行テスト:1、失敗:0、エラー:0、スキップ:0、経過時間:0.032秒

于 2012-06-11T12:37:40.187 に答える