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