【问题标题】:keeping track of multiple related input boxes using spring mvc使用spring mvc跟踪多个相关输入框
【发布时间】:2010-12-26 05:08:53
【问题描述】:

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

class MyCommand {
    List<Person> persons;
}

class Person {
    String fname;
    String lname;
}

那么,我期望让Spring MVC标签库生成的HTML是这样的:

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

但看不到如何使用 Spring Form Tag Libraries(使用 Spring 2.5.6)来表达这一点。我想使用标签库,以便它负责将现有值绑定到标签以进行编辑(当它们在那里时)。

有什么建议吗?

【问题讨论】:

    标签: java html spring-mvc jstl jsp-tags


    【解决方案1】:

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

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

    【讨论】:

    • @eqbridges,你确定它的工作原理???我越来越喜欢“bean类MyClass.Bean属性'persons [0]'的无效属性'persons [0]'不可读或具有无效的getter方法:”
    • @Jaikrat -- 此代码假定您将表单绑定到的 bean 具有属性“persons”,该属性是可以使用 persons[0]persons[1] 分配给的集合等等——例如list。您的错误表明您的 bean 不是这种情况。你有persons 属性吗?如果有,是什么?
    • 嘿@JacobMattison。感谢回复。我明白了。我的班级结构与上述不完全相同。它更复杂一点。就像,我有一个 PayForm 类,在里面我有一个 Issuer 类型的属性,在 Issuer 里面我有一个 AddressBean 列表,这个 AddressBean 有一个 Amount 类型的 var,它有一个 var 数量。所以这个addressBean的列表我有2个显示并稍后从输入框(数量)上获取数据。现在我无法发布我尝试过的代码,因为我在家。但如果你得到它,请帮助我。我必须显示/获取相同的输入框(金额)。
    • 嗯,好的...如果没有看到代码就很难做出回应(您可能想问一个新问题,您当然可以在此处发布链接)但是...一般来说,如果您要绑定到集合中某物的某个属性的属性,您可能需要执行类似 `path="issuer.addresses[${loopStatus.index}].amount,whatever"` 之类的操作——也就是说,您正在循环遍历对象路径中具有集合的任何级别。这也确实要求每个级别都存在 getter 和 setter 方法。
    • 是的,谢谢。它在这里stackoverflow.com/questions/29508868/…
    猜你喜欢
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多