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]

Reply via email to