so it looks like your issue is more to do with the child values not being set by Struts there have been a few postings about using the [] notation on field names to get struts to assign the values properly. in struts1 i found it worked fine, however in struts2 i've not really seen it working... in some of my actions i have actually added a method which gets the parameter values off the request and populates the objects myself.. e.g. look for parameter names starting parent.values and use the parameter name/value to construct the correct call to set the object. seems unnecessary as struts2 should handle it, but as i say i couldn't get it to do it with arraylists i was using.
---------------------------------------- > 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 15:16:36 +0200 > > > Thks a lot Adam it is now more concise: > > > > Setting params > Setting params id => [ 1 ] > Setting params id => [ 1 ] method:saveOrUpdate => [ Submit ] name => [ > Parent1 ] parent.values[0].id => [ 2 ] parent.values[0].name => [ Child2 ] > parent.values[1].id => [ 1 ] parent.values[1].name => [ Child1 ] > > > > Error setting value > ognl.NoSuchPropertyException: java.util.HashSet.0 > at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) > at > com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAccessor.java:80) > at java.lang.Thread.run(Unknown Source) > .. > Error setting value > ognl.NoSuchPropertyException: java.util.HashSet.0 > at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) > .. > Error setting value > ognl.NoSuchPropertyException: java.util.HashSet.1 > at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) > at > com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAccessor.java:80) > .. > Error setting value > ognl.NoSuchPropertyException: java.util.HashSet.1 > at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) > at > com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAccessor.java:80) > at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643) > .. > > Setting params > > Do u see something wrong?? > > > > >> 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 >> > > _________________________________________________________________ > Consultez gratuitement vos emails Orange, Gmail, Free, ... directement dans > HOTMAIL ! > http://www.windowslive.fr/hotmail/agregation/ > _________________________________________________________________ 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