It's generally a bad idea to do the following, even though it's really easy:

   1. Load a list into your ActionBean and forward to a view with inputs for
   properties of the list elements.
   2. Modify the elements and submit to same ActionBean
   3. Before binding, load the list the same way as in #1
   4. Allow Stripes to bind the properties into the list elements

The reason it's a bad idea is that the list often can change between the
time the view is presented and the time the form is submitted. Then you'd be
binding property values to the same indexes, but there might be a different
object at that index in the list due to the changes.

You can do something very similar except that you do NOT load the list again
(step 3 above) on form submission. Instead, you include a hidden input that
specifies which object to load into the list at the given index. E.g.
<s:hidden name="things[0]" />. If you're using Stripersist (or some other
good TypeConverter/Formatter combination) then Stripes will populate the
input automatically. When you submit your form, each element will get
stuffed into the list by the type converter and property binder and you'll
know exactly what object you're modifying with inputs like things[0].name
and things[0].description.

And that's where Mike's comment is relevant. If you don't submit any inputs
for things[1] (but you do have a things[2]) then that position in the list
will be null and you'd need to compact it to remove the nulls.

-Ben

On Thu, Jun 25, 2009 at 3:25 AM, <[email protected]> wrote:

>
> Hi,
>
> But as far as I can tell, there is no way to see which entries (if any)
> were deleted from the list?
>
> Since the setter method actually takes a list I would think it was cleared
> before putting the new values (from the request) in it?
>
> -dennis
>
> Mike McNally <[email protected]> skrev den 24-06-2009 15:31:32:
> >
> > In this exact situation, I ended up "packing" my list in my data-layer
> > code. Our (home-grown) JPA layer provides for a "beforeSave" hook in
> > the DAO, so in there I make sure the list is contiguous.
------------------------------------------------------------------------------
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to