将列表从jsp传递给控制器

时间:2012-10-30 12:47:08

标签: spring-mvc

我想将对象列表从jsp发送到控制器。

实际上我有User enity,它与Address enity有一对多的关系。 我的jsp如下:

<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>

这里我有三个地址就好。地址1,地址2和地址3

现在我在@ModelAttribut("user") User user收到了用户信息,但我没有从user.getAddress();获取地址列表。 它返回地址列表的“[]”空值。 我怎么能从jsp到控制器获得这个地址对象列表。

任何人都可以帮助我..

1 个答案:

答案 0 :(得分:1)

它在文档中描述,只需阅读section about nesting properties

对于提供的案例,您需要正确设置字段名称:

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

此代码将为用户的3个地址设置城市。与其他领域进行类似的转换。