【问题标题】:With Spring 2 form tags, how can bind list in a list使用 Spring 2 表单标签,如何在列表中绑定列表
【发布时间】:2011-10-09 05:23:37
【问题描述】:

我有一个对象,其中包含对象 A 的列表和对象 B 的列表。

型号:

public class ObjectA implements Serializable {

    private List<ObjectB> objectBs;
}

public class ObjectB implements Serializable {

    private String name;
}

使用 getter 和 setter

DTO:在我的前端控制器中使用 Spring MVC 2

public class FrontObject implements Serializable {

    private List<ObjectA> objectAs;
}

使用 getter 和 setter

在我的 JSP 中(我使用 forEach 标签添加一些东西,我知道 form:checkboxes 标签):

<c:forEach items="${objectAsList}" var="item">
    <!-- it works -->
    <form:checkbox path="objectAs" value="${item}"/>

    <c:forEach items="${item.objectBs}" var="itemB">
        <!-- whats the path? -->
        <form:checkbox path="????" value="${itemB}" />
    </c:forEach>
</c:forEach>

将objectB列表绑定到objectA列表中的路径(表单标记复选框)的语法是什么

也许像

<form:checkbox path="objectAs.objectBs" value="${itemB}" />

返回 org.springframework.beans.NotReadablePropertyException: 无效属性

【问题讨论】:

    标签: spring spring-mvc jsp-tags


    【解决方案1】:

    通常,路径是对象包含的值的名称。在您的情况下,它是“名称”

    【讨论】:

    • 不!它是列表中的列表。没有一份清单!
    • 你试试“itemB.name”吗?
    【解决方案2】:

    我觉得可以

        <form:checkbox path="objectAs.objectBs.name" value="${itemB.name}" />
    

    或者也许:

        <c:forEach items="${item.objectBs}" var="itemB" varStatus="i">
          <form:checkbox path="objectAs.objectBs[i.index].name" value="${itemB.name}" />
        </c:forEach>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2021-08-23
      • 2018-11-18
      • 2020-02-09
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多