Here is my Child class definition: @Entity @Table(name="CHILD") public class Child { private Long id; private String name; @Id @GeneratedValue @Column(name="CHILD_ID") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="NAME") public String getName() { return name; } public void setName(String val) { name = val; } }
and Parent definition: @Entity @Table(name="PARENT") public class Parent { private Long id; private String name; private Set<Child> values = new HashSet<Child>(); @Id @GeneratedValue @Column(name="PARENT_ID") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="NAME") public String getName() { return name; } public void setName(String val) { name = val; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = "PARENT_CHILD", joinColumns = { @JoinColumn(name = "PARENT_ID") }, inverseJoinColumns = { @JoinColumn(name = "CHILD_ID") }) public Set<Child> getValues() { return values; } public Child getValues(Long idx) { // NEVER CALLED! for ( Iterator<Child> iter = values.iterator(); iter.hasNext();) { Child c = (Child) iter.next(); if (c.getId() == idx) return c; } return null; } public void setValues(Set<Child> lst) { values = lst; } } So I do not understand the ognl.NoSuchPropertyException I got after submission.. > From: apin...@hotmail.co.uk > To: user@struts.apache.org > Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > Date: Thu, 1 Apr 2010 13:54:58 +0100 > > > > set the rootlogger to warn > > log4j.rootLogger=warn, stdout > > rather than debug > > you should only get a parameterinterceptor log entry every time you post > something to the server > > ---------------------------------------- > > From: brgrandj...@live.fr > > To: user@struts.apache.org > > Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > > Date: Thu, 1 Apr 2010 14:51:40 +0200 > > > > > > thks adam but I got now thousand & thousand of lines > > > > I am afraid that I won't be able to read its before the end of the world in > > 2012.. > > > > > > > > I saw very quicky an exception at the beginning.. > > > > How can I limit this huge quantity of lines? > > > > > > > > here is my log4j.properties file: > > > > > > > > log4j.appender.stdout=org.apache.log4j.ConsoleAppender > > log4j.appender.stdout.Target=System.out > > log4j.appender.stdout.layout=org.apache.log4j.PatternLayout > > log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - > > %m%n > > log4j.rootLogger=debug, stdout > > log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=debug > > > > > > > > > > > > > > > >> From: apin...@hotmail.co.uk > >> To: user@struts.apache.org > >> Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > >> Date: Thu, 1 Apr 2010 12:57:39 +0100 > >> > >> > >> > >> > >> in log4j.properties file (same location as struts.xml and hibernate config > >> files) > >> > >> add > >> > >> log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=debug > >> > >> this will output param name/value pairs being posted from your page. > >> > >> > >> > >> ---------------------------------------- > >>> From: brgrandj...@live.fr > >>> To: user@struts.apache.org > >>> Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate > >>> 3 > >>> Date: Thu, 1 Apr 2010 13:54:33 +0200 > >>> > >>> > >>> Dear Adam, > >>> > >>> > >>> > >>> I just added a public Child getValues(int idx) in the Parent class > >>> definition but it is never called. > >>> > >>> > >>> > >>> Could u explain to me where and how can I turn on the > >>> parameterinterceptor logging? In the struts.xml file? > >>> > >>> > >>> > >>> thks a lot > >>> > >>> > >>> bruno > >>> > >>> > >>> > >>> > >>> > >>>> From: apin...@hotmail.co.uk > >>>> To: user@struts.apache.org > >>>> Subject: RE: CRUD with a OneToMany association under Struts 2 / > >>>> Hibernate 3 > >>>> Date: Thu, 1 Apr 2010 12:18:48 +0100 > >>>> > >>>> > >>>> > >>>> > >>>> turn on the parameterinterceptor logging and make sure as mentioned that > >>>> > >>>> 1) the values you expect for each child are being sent to the server (id > >>>> and name) > >>>> 2) the parameter names are correct for setting each child > >>>> > >>>> i had some issues getting lists of items to be updated by form > >>>> submission alone. > >>>> > >>>> for example does your parent object have a getValues method taking an > >>>> index value > >>>> > >>>> getParent().getValues(1).setId(1) > >>>> getParent().getValues(1).setName("bob") > >>>> > >>>> would be called by parameterinterceptor > >>>> > >>>> > >>>> ---------------------------------------- > >>>>> From: brgrandj...@live.fr > >>>>> To: user@struts.apache.org > >>>>> Subject: RE: CRUD with a OneToMany association under Struts 2 / > >>>>> Hibernate 3 > >>>>> Date: Thu, 1 Apr 2010 12:16:09 +0200 > >>>>> > >>>>> > >>>>> Dear René > >>>>> > >>>>> > >>>>> > >>>>> I changed my jsp page so as to integrate the following block: > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> which generates the following html code: > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> I can display my complete Child Set but I got the same result after > >>>>> updating: my Child Set is empty. > >>>>> > >>>>> > >>>>> > >>>>> Is that necessary to modify my ParentAction as well? If yes what to do? > >>>>> > >>>>> > >>>>> > >>>>> public class ParentAction extends ActionSupport implements ModelDriven { > >>>>> > >>>>> private static final long serialVersionUID = -2662966220408285700L; > >>>>> private Parent cl = new Parent(); > >>>>> private List clList = new ArrayList(); > >>>>> private ParentDAO clDAO = new ParentDAOImpl(); > >>>>> > >>>>> @Override > >>>>> public Parent getModel() { > >>>>> return cl; > >>>>> } > >>>>> > >>>>> public String saveOrUpdate() > >>>>> { // cl.values is empty here!! > >>>>> clDAO.saveOrUpdateParent(cl); > >>>>> return SUCCESS; > >>>>> } > >>>>> > >>>>> public String save() > >>>>> { > >>>>> clDAO.saveParent(cl); > >>>>> return SUCCESS; > >>>>> } > >>>>> > >>>>> public String list() > >>>>> { > >>>>> clList = clDAO.listParent(); > >>>>> return SUCCESS; > >>>>> } > >>>>> > >>>>> public String delete() > >>>>> { > >>>>> HttpServletRequest request = (HttpServletRequest) > >>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>> clDAO.deleteParent(Long.parseLong(request.getParameter("id"))); > >>>>> return SUCCESS; > >>>>> } > >>>>> > >>>>> public String edit() > >>>>> { // cl.values contains some valid Child elements here!! > >>>>> HttpServletRequest request = (HttpServletRequest) > >>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>> cl = clDAO.listParentById(Long.parseLong(request.getParameter("id"))); > >>>>> } > >>>>> return SUCCESS; > >>>>> } > >>>>> > >>>>> public Parent getParent() { > >>>>> return cl; > >>>>> } > >>>>> > >>>>> public void setParent(Parent cl) { > >>>>> this.cl = cl; > >>>>> } > >>>>> > >>>>> public List getParentList() { > >>>>> return clList; > >>>>> } > >>>>> > >>>>> public void setParentList(List clList) { > >>>>> this.clList = clList; > >>>>> } > >>>>> } > >>>>> > >>>>> > >>>>> > >>>>>> Date: Thu, 1 Apr 2010 11:30:23 +0200 > >>>>>> From: gie...@it-neering.net > >>>>>> To: user@struts.apache.org > >>>>>> Subject: Re: CRUD with a OneToMany association under Struts 2 / > >>>>>> Hibernate 3 > >>>>>> > >>>>>> Given the model you presented in the first post, your problem seems to > >>>>>> be that the posted values have not the correct name for the children's > >>>>>> form fields. The parameters names you would need are > >>>>>> > >>>>>> id > >>>>>> name > >>>>>> values[0].id > >>>>>> values[0].name > >>>>>> values[1].id > >>>>>> values[2].name > >>>>>> ... > >>>>>> > >>>>>> for the parameters interceptor to work properly when applying the > >>>>>> posted > >>>>>> values. > >>>>>> > >>>>>> See here for more details: > >>>>>> http://struts.apache.org/2.1.8/docs/tabular-inputs.html > >>>>>> > >>>>>> - René > >>>>>> > >>>>>> bruno grandjean schrieb: > >>>>>>> Dear Rene, > >>>>>>> > >>>>>>> Thks a lot for replying to me because I am feeling a little bit alone > >>>>>>> with > >>>>>>> my CRUD ;-). In fact I am trying to build a dynamic MetaCrud. > >>>>>>> My pb is simple: in the same jsp page I would like to update a Parent > >>>>>>> object > >>>>>>> and its Childs (values): > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>>>> name="name" label="Nom" /> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> From an existing Parent object with many Childs objects I can easily > >>>>>>> modify > >>>>>>> parent.name for instance but the collection of Child objects (values) > >>>>>>> is > >>>>>>> always empty in the ParentAction (saveOrUpdate() method) after > >>>>>>> submitting. > >>>>>>> However I can display each values[i].name in the jsp page with the > >>>>>>> correct > >>>>>>> value. > >>>>>>> So it is not an issue with Hibernate but with the jsp or ModelDriven > >>>>>>> interface I don't know..Do you have any idea? > >>>>>>> Basically I was not able to find a struts or spring documentation > >>>>>>> about > >>>>>>> CRUD > >>>>>>> & association between two entities on the same jsp page. > >>>>>>> best regards > >>>>>>> bruno > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -------------------------------------------------- > >>>>>>> From: "Rene Gielen" > >>>>>>> Sent: Wednesday, March 31, 2010 7:12 PM > >>>>>>> To: "Struts Users Mailing List" > >>>>>>> Subject: Re: CRUD with a OneToMany association under Struts 2 / > >>>>>>> Hibernate 3 > >>>>>>> > >>>>>>>> I'm not sure if I understand what your actual question is, nor > >>>>>>>> whether > >>>>>>>> it is particularly Struts 2 related (rather than just Hibernate) - > >>>>>>>> but > >>>>>>>> you might want to have a look in the CRUD demo section of the Struts > >>>>>>>> 2 > >>>>>>>> showcase application. Maybe you will also find this demo useful: > >>>>>>>> http://github.com/rgielen/struts2crudevolutiondemo > >>>>>>>> > >>>>>>>> - René > >>>>>>>> > >>>>>>>> bruno grandjean schrieb: > >>>>>>>>> Hi > >>>>>>>>> > >>>>>>>>> I am trying to implement a simple CRUD with a OneToMany association > >>>>>>>>> under Struts 2 / Hibernate 3. > >>>>>>>>> I have two entities Parent and Child: > >>>>>>>>> > >>>>>>>>> @Entity > >>>>>>>>> @Table(name="PARENT") > >>>>>>>>> public class Parent { > >>>>>>>>> private Long id; > >>>>>>>>> private Set values = new HashSet(); > >>>>>>>>> .. > >>>>>>>>> @Entity > >>>>>>>>> @Table(name="CHILD") > >>>>>>>>> public class Child { > >>>>>>>>> private Long id; > >>>>>>>>> private String name; > >>>>>>>>> .. > >>>>>>>>> > >>>>>>>>> I can easily create, delete Parent or read the Child Set (values) > >>>>>>>>> but > >>>>>>>>> it is impossible to update Child Set. > >>>>>>>>> The jsp page (see below) reinit the values Set, no record after > >>>>>>>>> updating! > >>>>>>>>> Could u explain to me what's wrong? > >>>>>>>>> > >>>>>>>>> here are my code: > >>>>>>>>> > >>>>>>>>> @Entity > >>>>>>>>> @Table(name="PARENT") > >>>>>>>>> public class Parent { > >>>>>>>>> private Long id; > >>>>>>>>> private Set values = new HashSet(); > >>>>>>>>> @Id > >>>>>>>>> @GeneratedValue > >>>>>>>>> @Column(name="PARENT_ID") > >>>>>>>>> public Long getId() { > >>>>>>>>> return id; > >>>>>>>>> } > >>>>>>>>> public void setId(Long id) { > >>>>>>>>> this.id = id; > >>>>>>>>> } > >>>>>>>>> @ManyToMany(fetch = FetchType.EAGER) > >>>>>>>>> @JoinTable(name = "PARENT_CHILD", joinColumns = { @JoinColumn(name = > >>>>>>>>> "PARENT_ID") }, inverseJoinColumns = { @JoinColumn(name = > >>>>>>>>> "CHILD_ID") }) > >>>>>>>>> public Set getValues() { > >>>>>>>>> return values; > >>>>>>>>> } > >>>>>>>>> public void setValues(Set lst) { > >>>>>>>>> values = lst; > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> @Entity > >>>>>>>>> @Table(name="CHILD") > >>>>>>>>> public class Child { > >>>>>>>>> private Long id; > >>>>>>>>> private String name; > >>>>>>>>> @Id > >>>>>>>>> @GeneratedValue > >>>>>>>>> @Column(name="CHILD_ID") > >>>>>>>>> public Long getId() { > >>>>>>>>> return id; > >>>>>>>>> } > >>>>>>>>> public void setId(Long id) { > >>>>>>>>> this.id = id; > >>>>>>>>> } > >>>>>>>>> @Column(name="NAME") > >>>>>>>>> public String getName() { > >>>>>>>>> return name; > >>>>>>>>> } > >>>>>>>>> public void setName(String val) { > >>>>>>>>> name = val; > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public interface ParentDAO { > >>>>>>>>> public void saveOrUpdateParent(Parent cl); > >>>>>>>>> public void saveParent(Parent cl); > >>>>>>>>> public List listParent(); > >>>>>>>>> public Parent listParentById(Long clId); > >>>>>>>>> public void deleteParent(Long clId); > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public class ParentDAOImpl implements ParentDAO { > >>>>>>>>> @SessionTarget > >>>>>>>>> Session session; > >>>>>>>>> @TransactionTarget > >>>>>>>>> Transaction transaction; > >>>>>>>>> > >>>>>>>>> @Override > >>>>>>>>> public void saveOrUpdateParent(Parent cl) { > >>>>>>>>> try { > >>>>>>>>> session.saveOrUpdate(cl); > >>>>>>>>> } catch (Exception e) { > >>>>>>>>> transaction.rollback(); > >>>>>>>>> e.printStackTrace(); > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> @Override > >>>>>>>>> public void saveParent(Parent cl) { > >>>>>>>>> try { > >>>>>>>>> session.save(cl); > >>>>>>>>> } catch (Exception e) { > >>>>>>>>> transaction.rollback(); > >>>>>>>>> e.printStackTrace(); > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> @Override > >>>>>>>>> public void deleteParent(Long clId) { > >>>>>>>>> try { > >>>>>>>>> Parent cl = (Parent) session.get(Parent.class, clId); > >>>>>>>>> session.delete(cl); > >>>>>>>>> } catch (Exception e) { > >>>>>>>>> transaction.rollback(); > >>>>>>>>> e.printStackTrace(); > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> @SuppressWarnings("unchecked") > >>>>>>>>> @Override > >>>>>>>>> public List listParent() { > >>>>>>>>> List courses = null; > >>>>>>>>> try { > >>>>>>>>> courses = session.createQuery("from Parent").list(); > >>>>>>>>> } catch (Exception e) { > >>>>>>>>> e.printStackTrace(); > >>>>>>>>> } > >>>>>>>>> return courses; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> @Override > >>>>>>>>> public Parent listParentById(Long clId) { > >>>>>>>>> Parent cl = null; > >>>>>>>>> try { > >>>>>>>>> cl = (Parent) session.get(Parent.class, clId); > >>>>>>>>> } catch (Exception e) { > >>>>>>>>> e.printStackTrace(); > >>>>>>>>> } > >>>>>>>>> return cl; > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public class ParentAction extends ActionSupport implements > >>>>>>>>> ModelDriven { > >>>>>>>>> > >>>>>>>>> private static final long serialVersionUID = -2662966220408285700L; > >>>>>>>>> private Parent cl = new Parent(); > >>>>>>>>> private List clList = new ArrayList(); > >>>>>>>>> private ParentDAO clDAO = new ParentDAOImpl(); > >>>>>>>>> > >>>>>>>>> @Override > >>>>>>>>> public Parent getModel() { > >>>>>>>>> return cl; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public String saveOrUpdate() > >>>>>>>>> { > >>>>>>>>> clDAO.saveOrUpdateParent(cl); > >>>>>>>>> return SUCCESS; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public String save() > >>>>>>>>> { > >>>>>>>>> clDAO.saveParent(cl); > >>>>>>>>> return SUCCESS; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public String list() > >>>>>>>>> { > >>>>>>>>> clList = clDAO.listParent(); > >>>>>>>>> return SUCCESS; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public String delete() > >>>>>>>>> { > >>>>>>>>> HttpServletRequest request = (HttpServletRequest) > >>>>>>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>>>>>> clDAO.deleteParent(Long.parseLong(request.getParameter("id"))); > >>>>>>>>> return SUCCESS; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public String edit() > >>>>>>>>> { > >>>>>>>>> HttpServletRequest request = (HttpServletRequest) > >>>>>>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>>>>>> cl = > >>>>>>>>> clDAO.listParentById(Long.parseLong(request.getParameter("id"))); > >>>>>>>>> return SUCCESS; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public Parent getParent() { > >>>>>>>>> return cl; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public void setParent(Parent cl) { > >>>>>>>>> this.cl = cl; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public List getParentList() { > >>>>>>>>> return clList; > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> public void setParentList(List clList) { > >>>>>>>>> this.clList = clList; > >>>>>>>>> } > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> and finally the jsp page: > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>>>>>> "http://www.w3.org/TR/html4/loose.dtd"> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>> > >>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>> > >>>>>>>>> > >>>> > >>>>>>>>> > >>>> > >>>> > >>>>>>>>> > >>>> Child(s) > >>>>>>>>> > >>>> > >>>>>>>>> > >>>>>>>>>>>>>> class="oddeven"> > >>>>>>>>> > >>>> > >>>> > >>>>>>>>> > >>>>>>>>> > >>>> > >>>>>>>>> > >>>>>>>>> > >>>> > >>>>>>>>> > >>>>>>>>> Edit > >>>>>>>>> > >>>> > >>>>>>>>> > >>>>>>>>> Delete > >>>>>>>>> > >>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>>> -- > >>>>>>>> René Gielen > >>>>>>>> IT-Neering.net > >>>>>>>> Saarstrasse 100, 52062 Aachen, Germany > >>>>>>>> Tel: +49-(0)241-4010770 > >>>>>>>> Fax: +49-(0)241-4010771 > >>>>>>>> Cel: +49-(0)163-2844164 > >>>>>>>> http://twitter.com/rgielen > >>>>>>>> > >>>>>>>> --------------------------------------------------------------------- > >>>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> --------------------------------------------------------------------- > >>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>>>> > >>>>>> > >>>>>> -- > >>>>>> René Gielen > >>>>>> IT-Neering.net > >>>>>> Saarstrasse 100, 52062 Aachen, Germany > >>>>>> Tel: +49-(0)241-4010770 > >>>>>> Fax: +49-(0)241-4010771 > >>>>>> Cel: +49-(0)163-2844164 > >>>>>> http://twitter.com/rgielen > >>>>>> > >>>>>> --------------------------------------------------------------------- > >>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>>> > >>>>> > >>>>> _________________________________________________________________ > >>>>> Découvrez comment SURFER DISCRETEMENT sur un site de rencontres ! > >>>>> http://clk.atdmt.com/FRM/go/206608211/direct/01/ > >>>> _________________________________________________________________ > >>>> Do you have a story that started on Hotmail? Tell us now > >>>> http://clk.atdmt.com/UKM/go/195013117/direct/01/ > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>> > >>> > >>> _________________________________________________________________ > >>> Consultez gratuitement vos emails Orange, Gmail, Free, ... directement > >>> dans HOTMAIL ! > >>> http://www.windowslive.fr/hotmail/agregation/ > >> _________________________________________________________________ > >> Do you have a story that started on Hotmail? Tell us now > >> http://clk.atdmt.com/UKM/go/195013117/direct/01/ > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >> For additional commands, e-mail: user-h...@struts.apache.org > >> > > > > _________________________________________________________________ > > Découvrez comment SURFER DISCRETEMENT sur un site de rencontres ! > > http://clk.atdmt.com/FRM/go/206608211/direct/01/ > _________________________________________________________________ > Got a cool Hotmail story? Tell us now > http://clk.atdmt.com/UKM/go/195013117/direct/01/ > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > _________________________________________________________________ Découvrez comment SURFER DISCRETEMENT sur un site de rencontres ! http://clk.atdmt.com/FRM/go/206608211/direct/01/