要么根本没有将组件添加到页面中,要么层次结构在wicket中不匹配

时间:2015-08-18 10:39:06

标签: java wicket

目前我在wicket framework中工作了一个要求。我完成了与之相关的一些编码部分。但是我得到的层次结构与期望总是不匹配。我遵循层次结构,但是我没有做错。

here is my requirement:

by clicking on tab,i would like to display progress bar.i used ajax lazy load concept here..

Here is code:
ConditionalListView<Ancillary> orderAncillariesNavigationList = new ConditionalListView<Ancillary>(
        "ancillaryItems", orderAncillaryList) {
        @Override
      protected void populateItem(ListItem<Ancillary> item) {
        final Ancillary ancillary = item.getModelObject();
        // add ajax link
       final AjaxLink<String> navigationLink = new AjaxLink<String>("ancillaryLink") {

          private static final long serialVersionUID = 1L;

          @Override
          public void onClick(AjaxRequestTarget target) {
            // replace data with this ancillary
            replaceWithSelectedAncillary(target, ancillary);
            target.appendJavascript(CLEAR_BIG_EASY_FEEDBACK);
          }
       };
        navigationLink.add(new Label("ancillaryLinkName", ancillary.getLabel()));

        //progress bar

        if(ancillary.getLabel().equals("Episode / Show Descriptions")){
            add(new AjaxLazyLoadPanel("lazy")
            {

                private static final long serialVersionUID = 1L;

                @Override
                public Component getLazyLoadComponent(String id)
                {
                    // sleep for 5 seconds to show the behavior
                    try
                    {
                        Thread.sleep(5000);
                    }
                    catch (InterruptedException e)
                    {
                        throw new RuntimeException(e);
                    }
                    return navigationLink;
                }

            });
          }

       // set class
        if (ancillary.getId().longValue() == selectedAncillary.getId().longValue()) {
          item.add(new AttributeAppender("class", new Model<String>("selected"), " "));
        }

        item.add(navigationLink);
        //item.add(TestPage());

      }
    };

HTML:

<div class="reset">&nbsp;</div>  
      <div wicket:id="feedback"></div>
      <div wicket:id="lazy"></div>
       <div id="ancillaryNavigation">
       <ul id="ancillaryTabs" class="group">
        <li wicket:id="ancillaryItems">
       <a href="javascript://" wicket:id="ancillaryLink"><span wicket:id="ancillaryLinkName">Music Cue Sheets</span></a>
        </li>
      </ul>  <!--  /#ancillaryTabs -->
      </div>  <!--  /#ancillaryNavigation -->
      <form wicket:id="ancillaryManualForm" name="ancillaryManualForm" class="epForm"> 
        <div wicket:id="ancillaryOrderEpisodes" />
      </form>
    </div>  <!--  /#ancillaryOrders -->

Please help me out.What i did wrong here.

1 个答案:

答案 0 :(得分:0)

您可能希望参考wicket示例以添加指向列表视图的链接。以下是我对您的代码的观察:1。您正在加载延迟加载的链接。您的链接加载需要很长时间,或者点击链接加载面板需要很长时间吗? 2.您不能将标签作为子组件添加到链接中,您可以通过属性模型设置链接的标签。 3.检查标记组件和java组件结构的顺序。父级组件层次结构必须匹配。

我首先要从一个小步骤开始;查看我正在使用的所有不同组件的wicket示例。