如何在spring MVC项目中向html表添加对象列表?

时间:2015-07-31 16:07:42

标签: spring hibernate jsp spring-mvc

我是Spring MVC和Hibernate的新手,这是我的第一个使用java ee技术的项目。我在这一点上停留了将近2天,我在网上搜索但没有运气。我唯一得到的是如何表示从数据库中获取的html表中的对象列表(我不是在寻找)。

我的项目中有FeedOrderDetails和Feed的一对多关系。一切都运行得很好,除了我无法使用feedOrderDetails保存许多Feed。案例是我可以在我的jsp页面中仅保存定义数量的Feed项。 这是我的ER图的图片。 enter image description here

这是我的jsp中的代码     

    <table>
        <tr>
            <td>Date</td>
            <td><form:input path="date" /></td>
        </tr>
        <tr>
            <td>Discount</td>
            <td><form:input path="discount" /></td>
        </tr>
        <tr>
            <td>Total</td>
            <td><form:input path="total" /></td>
        </tr>
        <tr>
            <td>Unit Price</td>
            <td><form:input path="feedOrderDetail[0].unitPrice" /></td>
        </tr>
        <tr>
            <td>Quantity</td>
            <td><form:input path="feedOrderDetail[0].quantity" /></td>
        </tr>
        <tr>
            <td>Feed</td>
            <td><form:input path="feedOrderDetail[0].feed.id" /></td>
        </tr>
        <tr>
            <td><input type="submit" value="Add Feed"></td>
        </tr>
    </table>


</form:form>

我想要实现的是我想向Feed Order添加许多Feed并将它们全部保存在一起。就像我想要将Feed ID,Feed名称,数量和单价添加到html表格中,并在一键式按钮中保存所有这些详细信息。

这就是我想要实现的目标。 enter image description here

我输入包装材料ID,数量和单价,然后单击添加按钮将这些项目添加到表格中。就像我想要将这些项目添加到html格式的表格中,其中包含路径标记。 举个例子 第一行应包含标签
    <td><form:input path="feedOrderDetail[0].feed.id" /></td>

第二行

`<td><form:input path="feedOrderDetail[1].feed.id" /></td>`

每当我向桌子添加项目时,都应该这样做。

2 个答案:

答案 0 :(得分:0)

You should write some javascript to add form <input> elements with the names resembling to those produced with <form:input> tags and then submit them altogether. It involves a bit of js coding, once the form elements are properly set, springmvc will do the conversion into a parent+list of children. In this context, elements like <form:input path="feedOrderDetail[0].feed.id" /> will be redundant if there's one <form:input path="id"/>

You can see an example here.

答案 1 :(得分:0)

我可以用javascript解决这个问题。希望以后能帮助别人。

<field name="bustypes" type="string" indexed="true" stored="true" multiValued="true"/>