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/

Reply via email to