Hi,

I will like to understand the dynamics behind retrieving form values when
they are submitted.

I have the following code:

Dashboard.html
-----------------------
<body>
        <span wicket:id='mainNavigation'/>

         <form wicket:id="searchForm">
             <label for="search">Search:</label>
             <input wicket:id="searchtextfield" type="text" /> <br />
             <input type="submit"/>
        </form>

    </body>

Dashboard.java
----------------------
public class Dashboard extends BasePage {

    private static final Logger log =
Logger.getLogger(Dashboard.class.getName());

    public Dashboard() {
        super ();
        final SearchForm searchForm = new SearchForm("searchForm");
        add(searchForm);
    }

    public Dashboard(IModel model) {
        super(model);
    }

    private class SearchForm extends Form implements
IFormSubmittingComponent {
        TextField searchtextfield;
        Search search = new Search();

        public SearchForm(String id) {
            super(id);
            add(searchtextfield = new TextField("searchtextfield", new
Model() {

                @Override
                public Serializable getObject() {
                    return search.getText();
                }

                @Override
                public void setObject(Serializable object) {
                        search.setText((String) object);
                }
            }));
        }

        @Override
        public boolean getDefaultFormProcessing() {
            return false;
        }

        @Override
        public Form<?> getForm() {
            return this;
        }

        @Override
        public String getInputName() {
            return "searchtextfield";
        }

        @Override
        public void onSubmit() {

            //String value = (String)searchtextfield.getModelObject();
            String value = searchtextfield.getValue();
            log.log(Level.INFO, "Search value is: ", value);

            // Using SolrJ to make the request to Solr
            String url = "http://localhost:8983/solr/";;
            try {
                // Connect to Solr Server
                SolrServer server = new CommonsHttpSolrServer(url);
                //server.query(null, METHOD.GET);
                SolrQuery solrQuery = new SolrQuery(value);
                QueryResponse response = server.query(solrQuery);

                // log the response
                log.log(Level.INFO, "Search result is: ",
response.toString());
                System.out.println("System print. Response is: " +
response.toString());
            } catch (MalformedURLException ex) {

 Logger.getLogger(Dashboard.class.getName()).log(Level.SEVERE, null, ex);
            } catch(SolrServerException sse) {

            }
        }
    }

}

Search.java
-----------------
public class Search {

    private String text;

    public Search() {
    }

    public Search(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

I really don't know what I'm doing wrong as I can't seem to be able to
retrieve the value entered into the textfield.

Any help will be much appreciated.

Thanks

-- 
Odeyemi 'Kayode O.
http://www.sinati.com. t: @charyorde

Reply via email to