代码之家  ›  专栏  ›  技术社区  ›  Edward Q. Bridges

使用Spring MVC跟踪多个相关输入框

  •  1
  • Edward Q. Bridges  · 技术社区  · 15 年前

    我们有一个需要在HTML页面上编辑的域对象列表。例如,命令和域对象:

    class MyCommand {
        List<Person> persons;
    }
    
    class Person {
        String fname;
        String lname;
    }
    

    然后,HTML i 期待 要让SpringMVC标记库生成,如下所示:

    <form>
       <input name="persons[0].fname">&nbsp;<input name="persons[0].lname"><br/>
       <input name="persons[1].fname">&nbsp;<input name="persons[1].lname"><br/>
       <input name="persons[2].fname">&nbsp;<input name="persons[2].lname"><br/>
       ...
       <input name="persons[n].fname">&nbsp;<input name="persons[n].lname"><br/>
    </form>
    

    但看不到如何使用SpringForm标记库(使用Spring2.5.6)来表达这一点。我想使用标记库,这样它就可以将现有值绑定到标记上进行编辑(当它们存在时)。

    有什么小窍门吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Jacob Mattison    15 年前

    没有一种方法可以简单地让SpringForm标记基于集合生成整个列表(它将针对选择框中的选项执行此操作,但这是我所知道的唯一基于集合的扩展)。但是,您仍然可以在这样的循环中使用SpringForm标记:

    <c:forEach var="person" varStatus="loopStatus" items="myCommand.persons">
       <form:input path="persons[${loopStatus.index}].fname" />&nbsp;<form:input path="persons[${loopStatus.index}].lname" /><br />
    </c:forEach>