Hi Olof, Did you find a solution to this? I have similar need as yours this time.
A.C. "Olof =?UTF-8?Q?N=C3=A6ss=C3=A9n" ?= wrote: > > I have a problem with using forms in components where the data model > is passed to the components via parameter inside a T5 loop component. > When a form is submitted the data model seems to be lost. > > What I'm trying to do is to iterate through a collection of users and > construct a form for each user where a user name can be edited. Each > form resides in a component that handles submission. The user model > data is passed to the component inside a page where a loop loops > through a collection of users. The idea is to have a form for each > user so when submitting a form, only the user edited will get updated. > However, when a form is submitted the user data model is lost and ends > up as a null pointer. > > I wouldn't be surprised if I've missed something obvious or if the way > I try to achieve a form for each user isn't a valid usage of T5. Any > thoughts or suggestions? I've attached a simple example demonstrating > my approach in this email. > > /Olof > > // User.java Data Model > package org.example; > > public class User > { > private String name; > > public User(String name) > { > this.name = name; > } > > public String getName() > { > return name; > } > > public void setName(String name) > { > this.name = name; > } > } > > //Users.java T5 Page > package org.example.testapp.pages; > > import java.util.ArrayList; > import java.util.List; > > import org.apache.tapestry.annotations.Persist; > import org.example.User; > > public class Users > { > private User user; > > @Persist("flash") > private List<User> users; > > public void onActivate() > { > if (users == null) > { > users = new ArrayList<User>(); > users.add(new User("Ted")); > users.add(new User("Olof")); > } > } > > public User getUser() > { > return user; > } > > public void setUser(User user) > { > this.user = user; > } > > public List<User> getUsers() > { > return users; > } > } > > // Users.html T5 Template > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > <head> > </head> > <body> > <t:loop source="users" value="user"> > <t:edituser user="user"/> > </t:loop> > </body> > </html> > > //EditUser.java T5 Component > package org.example.testapp.components; > > import org.apache.tapestry.annotations.Parameter; > import org.example.User; > > public class EditUser > { > @Parameter(required = true) > private User user; > > public void setUser(User user) > { > this.user = user; > } > > public User getUser() > { > return user; > } > > public void onSuccess() > { > // save user > } > } > > //EditUser.html T5 Template > <t:form xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > <t:textfield value="user.name"/><br/> > <t:submit t:id="save" value="save"/> > </t:form> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/-T5--Problem-with-multiple-forms-in-a-loop-tf4533944.html#a13467431 Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]