You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Sashi Ravipati <Ra...@michigan.gov> on 2003/06/12 14:49:00 UTC

RE: what setters do i implement in an indexed tag --NewBiequestion

John

Thanks for all the code u sent. I have started working on it, and I had
few questions (PLS bear with me if they look stupid).

1. PersonForm (which extends ActionForm) will have get and set methods 
for Name and Phone Number? This PersonForm is also initialized in
Struts-Config.xml 

2. IS myFormBean another bean which extends ActionForm ? Do I need to
set this also in my Struts-Config.xml 

Thanks



>>> jgreenhill@dayspring-tech.com 06/11/03 06:45PM >>>
Forgot to mention, I believe for the case of indexing using
logic:iterate your id must match your property. So in your example set
id="personList"

Now if you switch over to nested:iterate, the whole id thing goes away
and the property and type attributes are sufficient.

-john

-----Original Message-----
From: John Greenhill [mailto:jgreenhill@dayspring-tech.com]
Sent: Wednesday, June 11, 2003 3:37 PM
To: Struts Users Mailing List
Subject: RE: what setters do i implement in an indexed tag
--NewBiequestion


Assuming you're NOT using the lazy initialization, you could do it like
this...



1) your iterate will need to specify the type of the nested class:

<logic:iterate id="person" name="myFormBean" property="personList"
type="com.mydom.myproject.struts.Person>

Where the Person class has just the standard accessors for name and
phoneNo.


2) Your myFormBean will have the special accessors for indexing:

    // SPECIAL ACCESSORS FOR INDEXING NEEDED
    public Person getPersonList(int ndx) {
        return (PersonForm) personList.get(ndx);
    }
    public void setPersonList(int ndx, PersonForm p) {
        personList.set(ndx, p);
    }


3) Assuming you don't already know the size of your personList, your
reset method
will initialize it and create the empty Person objects to fill with the
data:

    public void reset(ActionMapping mapping, HttpServletRequest request)
{

        this.personList = new ArrayList();

        String num = request.getParameter("personListLength");
        try {
            if (num != null) {
                int len = Integer.parseInt(num);
                for (int i = 0; i < len; i++)
                    this.personList.add(new PersonForm());
            }
        } catch (NumberFormatException e) {
            //...
        }
    }

This assumes the prep action that entered the jsp figured out the size
of the list
and set it into a hidden in the jsp in a field named personListLength.

-john

-----Original Message-----
From: Sashi Ravipati [mailto:RavipatiS@michigan.gov]
Sent: Wednesday, June 11, 2003 1:19 PM
To: struts-user@jakarta.apache.org
Subject: what setters do i implement in an indexed tag --NewBiequestion


Can some body help in as how to define get and set methods when we use
indexed tags.

eg:

<logic:iterate id="person" name="myFormBean" property="personList">
  <tr>
    <td>
      <bean:write name="person" property="name"/>
      <html:hidden name="person" property="name" indexed="true"/>
    </td>
    <td>
      <html:text name="person" property="phoneNo" indexed="true"/>
    </td>
  </tr>
</logic:iterate>

What will be the get and set methods. 

Thanks

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org

RE: what setters do i implement in an indexed tag --NewBiequestion

Posted by Sandeep Takhar <sa...@yahoo.com>.
I would have a

<FormBeanName> extend ActionForm

have a getPersonList which returns a collection of
Person objects which does not extend the ActionForm

struts-config has

<form-bean name="formBean"
type="org.....<FormBeanName>">
<action path="/SomeAction"
      form="formBean"

sandeep
--- Sashi Ravipati <Ra...@michigan.gov> wrote:
> John
> 
> Thanks for all the code u sent. I have started
> working on it, and I had
> few questions (PLS bear with me if they look
> stupid).
> 
> 1. PersonForm (which extends ActionForm) will have
> get and set methods 
> for Name and Phone Number? This PersonForm is also
> initialized in
> Struts-Config.xml 
> 
> 2. IS myFormBean another bean which extends
> ActionForm ? Do I need to
> set this also in my Struts-Config.xml 
> 
> Thanks
> 
> 
> 
> >>> jgreenhill@dayspring-tech.com 06/11/03 06:45PM
> >>>
> Forgot to mention, I believe for the case of
> indexing using
> logic:iterate your id must match your property. So
> in your example set
> id="personList"
> 
> Now if you switch over to nested:iterate, the whole
> id thing goes away
> and the property and type attributes are sufficient.
> 
> -john
> 
> -----Original Message-----
> From: John Greenhill
> [mailto:jgreenhill@dayspring-tech.com]
> Sent: Wednesday, June 11, 2003 3:37 PM
> To: Struts Users Mailing List
> Subject: RE: what setters do i implement in an
> indexed tag
> --NewBiequestion
> 
> 
> Assuming you're NOT using the lazy initialization,
> you could do it like
> this...
> 
> 
> 
> 1) your iterate will need to specify the type of the
> nested class:
> 
> <logic:iterate id="person" name="myFormBean"
> property="personList"
> type="com.mydom.myproject.struts.Person>
> 
> Where the Person class has just the standard
> accessors for name and
> phoneNo.
> 
> 
> 2) Your myFormBean will have the special accessors
> for indexing:
> 
>     // SPECIAL ACCESSORS FOR INDEXING NEEDED
>     public Person getPersonList(int ndx) {
>         return (PersonForm) personList.get(ndx);
>     }
>     public void setPersonList(int ndx, PersonForm p)
> {
>         personList.set(ndx, p);
>     }
> 
> 
> 3) Assuming you don't already know the size of your
> personList, your
> reset method
> will initialize it and create the empty Person
> objects to fill with the
> data:
> 
>     public void reset(ActionMapping mapping,
> HttpServletRequest request)
> {
> 
>         this.personList = new ArrayList();
> 
>         String num =
> request.getParameter("personListLength");
>         try {
>             if (num != null) {
>                 int len = Integer.parseInt(num);
>                 for (int i = 0; i < len; i++)
>                     this.personList.add(new
> PersonForm());
>             }
>         } catch (NumberFormatException e) {
>             //...
>         }
>     }
> 
> This assumes the prep action that entered the jsp
> figured out the size
> of the list
> and set it into a hidden in the jsp in a field named
> personListLength.
> 
> -john
> 
> -----Original Message-----
> From: Sashi Ravipati [mailto:RavipatiS@michigan.gov]
> Sent: Wednesday, June 11, 2003 1:19 PM
> To: struts-user@jakarta.apache.org
> Subject: what setters do i implement in an indexed
> tag --NewBiequestion
> 
> 
> Can some body help in as how to define get and set
> methods when we use
> indexed tags.
> 
> eg:
> 
> <logic:iterate id="person" name="myFormBean"
> property="personList">
>   <tr>
>     <td>
>       <bean:write name="person" property="name"/>
>       <html:hidden name="person" property="name"
> indexed="true"/>
>     </td>
>     <td>
>       <html:text name="person" property="phoneNo"
> indexed="true"/>
>     </td>
>   </tr>
> </logic:iterate>
> 
> What will be the get and set methods. 
> 
> Thanks
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> struts-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> struts-user-help@jakarta.apache.org
> 


__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org