1

我制作了一个 Spring MVC 应用程序,该应用程序向用户显示项目列表 - 我如何更改 JSP 中这些项目的顺序,以便将新订单提交到服务器?

例如,用户获得以下列表:

  1. 宠物猫
  2. 宠物狗
  3. 宠物鸟

该列表由以下表格组成:

<form:form action="/modifypetlist.do" method="POST" modelAttribute="petList">
  <fieldset>
    <div>
      <ul id="sortable">
        <c:forEach items="${petList.list}" varStatus="vs">
          <li class="ui-state-default">
           <form:label path="list[${vs.index}].pet">Pet</form:label>
           <form:input path="list[${vs.index}].pet" />
          </li>
       </c:forEach>
      </ul>
     </div>
     <input type="submit" value="send">
   </fieldset>
</form:form>

我已经包含了一些 Javascript,使用户能够拖放列表中的行,例如将 Dog 线移到 Cat 线上方。

我如何将此信息传达给服务器?(如何从表单字段重建 petList 模型?)我目前可以在提交表单后读取服务器中的列表,但列表项按原始顺序排列,即使我更改了表单中的名称(例如 Cat --> 鼠标)

4

2 回答 2

1

您需要在持久层中持久化订单信息。通过这样做,您将需要在每次修改订单时触发一个调用(例如一个 javascript ajax 调用)。此调用应向应用程序服务器发送请求,应用程序服务器将调用适当的服务来更新该列表的持久层。

然后,您还需要调整您的持久层以使用您之前在显示页面时保留的“排名”信息对列表进行排序。

我想这是最有效的方法。

祝你好运 !

于 2012-06-15T13:20:22.380 回答
1

那是因为它们自然地按主键(即索引)排序,因此通常是行的 id。

尝试在表中添加一个“排名”字段,一旦对数据进行排序,您将更新该字段并按排名对结果进行排序。

于 2012-06-15T12:13:02.650 回答