在Struts 2中,如何从表单中的TreeSet更新值?

时间:2015-07-09 17:34:30

标签: java jquery jquery-ui struts2

我的模型中有一个TreeSet<Rule>,它包含规则及其层次级别 - 根据要求,需要用户可以重新排序。规则具有以下模型:

public class Rule {
    int id;
    int level;
    String desc;
}

我试图尽可能地从模型中抽象出视图,以避免用户错误。作为我的傻瓜,我认为允许用户拖放规则以重新排列它们是“整洁的” - 这就是为什么我正在考虑使用JQuery的Sortable元素。

在我看来,我会显示可以由用户重新排序的行。然后我会从规则中更新级别值。我的问题是:一旦用户点击“更新”按钮,我需要更新每个规则的级别值。

表格

class RulesForm extends ActionForm {
  private TreeSet<Rule> rules;
  private int[] reorderedIds;
  // Getters and Setters
}

查看

<script>
$(function() {
  $( "#sortable tr" ).sortable();
  $( "#sortable tr" ).disableSelection();
});
</script>

<html:form action="/rules?method=update">
<table>
  <c:forEach items="rule" var="rules">
    <tr class="sortable"><td id="${rule.id}">
      <bean:write name="rule" property="desc" />
    </td></tr>
  </c:forEach>
</table>
<html:submit value="Update"/>

1)如何更新每个规则的级别?我正在考虑:

  • 使用可以使用ui.item.index和ui.placeholder.index(基于this question)交换$ rule.level值的更改事件;
  • 检索id列表(例如:[1,4,3])并实现逻辑以重新排序我的TreeSet;
  • 使用jquery-cookie来保存TreeSet;
  • 忘记它并将视图更改为更简单的内容。

2)一旦我改变了行位置,我怎样才能在表单中检索它们?

0 个答案:

没有答案