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