Vijay Shegokar
Vijay Shegokar

Reputation: 2522

Pass List from jsp to controller

I want to send the list of objects from jsp to controller.

Actually i had User enity and it has one to many relationship with Address enity. My jsp is as follows :

<div class="label"><b>First Name :</b></div>
                    <div class="leftSide"><input type="text" name="firstName" class="textBox" style="width:250px;" /></div>
                    <div class="clr ht5"></div>

                    <div class="label"><b>Company :</b></div>
                    <div class="leftSide"><input type="text" name="company" class="textBox" style="width:250px;" /></div>
                    <div class="clr ht5"></div>
                 </div>
                 <div class="rightHalfColumn">
                    <div class="label"><b>Last Name :</b></div>
                    <div class="leftSide"><input type="text" name="lastName" class="textBox" style="width:250px;" /></div>
                    <div class="clr ht5"></div>

                    <div class="label"><b>Email Address :</b></div>
                    <div class="leftSide"><input type="text" name="email" class="textBox" style="width:250px;" /></div>
                    <div class="clr ht5"></div>

                    Address 1
                    <div class="label"><b>Address 1 :</b></div>
                    <div class="leftSide"><input type="text" name="address1" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>City :</b></div>
                    <div class="leftSide"><input type="text" name="city" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Zipcode :</b></div>
                    <div class="leftSide"><input type="text" name="zipcode" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Address 2 :</b></div>
                    <div class="leftSide"><input type="text" name="address2" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>State :</b></div>
                    <div class="leftSide"><input type="text" name="state" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Phone :</b></div>
                    <div class="leftSide"><input type="text" name="phone" class="textBox" style="width:250px;" /></div>


                    Address 2
                    <div class="label"><b>Address 1 :</b></div>
                    <div class="leftSide"><input type="text" name="address1" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>City :</b></div>
                    <div class="leftSide"><input type="text" name="city" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Zipcode :</b></div>
                    <div class="leftSide"><input type="text" name="zipcode" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Address 2 :</b></div>
                    <div class="leftSide"><input type="text" name="address2" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>State :</b></div>
                    <div class="leftSide"><input type="text" name="state" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Phone :</b></div>
                    <div class="leftSide"><input type="text" name="phone" class="textBox" style="width:250px;" /></div>


                    Address 3
                    <div class="label"><b>Address 1 :</b></div>
                    <div class="leftSide"><input type="text" name="address1" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>City :</b></div>
                    <div class="leftSide"><input type="text" name="city" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Zipcode :</b></div>
                    <div class="leftSide"><input type="text" name="zipcode" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Address 2 :</b></div>
                    <div class="leftSide"><input type="text" name="address2" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>State :</b></div>
                    <div class="leftSide"><input type="text" name="state" class="textBox" style="width:250px;" /></div>

                    <div class="label"><b>Phone :</b></div>
                    <div class="leftSide"><input type="text" name="phone" class="textBox" style="width:250px;" /></div>

Here i have three Address like. Address1, Address2 and Address3

now I get the User info at @ModelAttribut("user") User user but i didnt get the addresses list from user.getAddress();. It returns the "[]" empty value for addresslist. How could i get this list of address objects from jsp to controller.

Can anyone help me please..

Upvotes: 1

Views: 4432

Answers (1)

Slava Semushin
Slava Semushin

Reputation: 15204

It described in documentation, just read section about nesting properties.

For provided case you need to set field names properly:

  • user.address[0].city
  • user.address[1].city
  • user.address[2].city

This code will set cities for 3 address of user. Do similar transformation with other fields.

Upvotes: 1

Related Questions