Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
  Note: this code has not been tested. It is only intended to show the concepts.
  
  SearchPage extends WebPage
  {
      String criteria;
      List results;
  
      public SearchPage()
      {
          ListView view = 
              new ListView ( "list", new PropertyModel(this, "results"))
              {
                   protected void populateItem( ListItem item )
                   {
                       String result = (String) item.getModelObject();
                       item.add( new Label( "item", result ) );
                   }
               };
  
          Form form = new SearchForm(....);
          form.add( new TextField( "textField", new PropertyModel(this, "criteria" ) );
          form.add
          ( 
              new Button("button")
              {
                  public void onSubmit()
                  {
                      results = getResultsFromCriteria(criteria);
                  }
              }
          );
          add(form);
      }
  }

The principle is this: every time the page renders, the ListView will populate itself with the inserted List, that also happens to be a page property. Every time the form is submitted (i.e. there is a new request for a search), the List is updated based on the results obtained using the search string.

...