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

Reply via email to