Do you have the ValueMap usage from a Wicket example (e.g. Guestbook)?
You don't seem to have any code that wires a ValueMap into your form.

The following should be enough:

           @Override
           public final void onSubmit() {

               Session session = 
HibernateUtil.getSessionFactory().getCurrentSession();
               session.beginTransaction();

               for (Movie movie : listView.getModelObject()) {
                   session.save(movie);
               }
               session.getTransaction().commit();
           }

Hope this helps
Sven


Am 23.01.2012 17:27, schrieb Daniel Watrous:
The problem is that I can't seem to access the form submitted values
in onSubmit().

ValueMap values = getModelObject();

values is null...

Daniel

On Mon, Jan 23, 2012 at 9:24 AM, Sven Meier<s...@meiers.net>  wrote:
So you're already using PropertyListView, fine.

What's your problem once again?

Sven


Am 23.01.2012 17:20, schrieb Daniel Watrous:
Let me give a little more detail. The way that markup is managed is
through this:

         // Add movieListView of existing movies
         moviesForm.add(new PropertyListView<Movie>("movies", movieList) {

             @Override
             public void populateItem(final ListItem<Movie>    movieItem) {
                 final RatingModel rating = new
RatingModel(movieItem.getModelObject().getRating());
                 movieItem.add(new
TextField<String>("name").setType(String.class));
                 movieItem.add(new DropDownChoice<Category>("category",
Arrays.asList(Category.values()), new
EnumChoiceRenderer<Category>(this)));
                 movieItem.add(new RatingPanel ("rating", new
PropertyModel<Integer>(rating, "rating"), 5, new
PropertyModel<Integer>(rating, "numberOfVotes"), false) {
                     @Override
                     public boolean onIsStarActive(int star) {
                         return rating.isActive(star);
                     }
                     @Override
                     public void onRated(int newRating,
AjaxRequestTarget target) {
                         movieItem.getModelObject().setRating(newRating);
                         rating.updateRating(newRating);

                         Session session =
HibernateUtil.getSessionFactory().getCurrentSession();
                         session.beginTransaction();
                         session.update(movieItem.getModelObject());
                         session.getTransaction().commit();

                         movieList.detach();
                     }
                 });
                 movieItem.add(new Link("removeLink") {
                     @Override
                     public void onClick() {

System.out.print(movieItem.getModelObject().getId());
                         Session session =
HibernateUtil.getSessionFactory().getCurrentSession();
                         session.beginTransaction();
                         session.delete(movieItem.getModelObject());
                         session.getTransaction().commit();
                         movieList.detach();
                     }
                 });
             }
         }).setVersioned(false);

I suppose that means that I'm not actually adding new items to the
list as a form. Maybe what I need is to treat the entire component as
a form from the beginning. I'm just not sure exactly how to do that.

Any ideas?

Daniel

On Mon, Jan 23, 2012 at 9:07 AM, Daniel Watrous
<daniel.watr...@gmail.com>    wrote:
I have populated a form with values representing several different
objects. This is what my markup looks like:


            <form wicket:id = "moviesForm" id = "moviesForm">
                <span wicket:id = "movies" id = "movies">
                    <a wicket:id = "removeLink">(remove)</a>
                    <input type="text" wicket:id="name" class="nospam"/>
                    <select wicket:id="category"/>
                    <span wicket:id="rating">rating</span>
                    <br />
                </span>
                <input type = "submit" value = "Update Movies"
id="formsubmit"/>
            </form>

The span is reproduced for each object that I pull from a database.
There is a different identifier for each span, as you can see here:
http://screencast.com/t/l8pLGZnJVn8

I want to be able to access these objects when I click submit the
form, but I'm not sure how to get access to them. This is what I have
tried so far:


        Form moviesForm = new Form<ValueMap>("moviesForm") {
            /**
             * Show the resulting valid new movie
             */
            @Override
            public final void onSubmit() {
                ValueMap values = getModelObject();

                // perform validation and security here
                if (StringUtils.isBlank((String) values.get("name"))) {
                    error("Received bad input!!!");
                    return;
                }

                Session session =
HibernateUtil.getSessionFactory().getCurrentSession();
                session.beginTransaction();

                Movie movie = new Movie();
                movie.setName((String) values.get("name"));
                movie.setCategory((Category) values.get("category"));
                session.save(movie);
                session.getTransaction().commit();
            }

        };

The ValueMap values comes back null from getModelObject(). Any
pointers for me to get these objects back in a way that I can easily
update them?

Thanks.
---------------------------------------------------------------------

To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to