隐藏类在spring webflow中创建逗号

时间:2017-07-27 13:56:49

标签: spring spring-mvc spring-webflow

我正在使用spring webflow显示项目列表。 每个项目都有一个编辑按钮;单击该按钮可打开模式对话框。 如果列表中有12个项目, 我看到在表单路径中生成了12个逗号。 如何避免产生逗号?

<c:forEach var="note" items="${model.modelname}">
//create a click button for each item
//each click opens up a modal

    <div id="modal" class="hidden">
        <div class="modal-body-content">
            <form:textarea path="textPath" />
        </div>
    </div>  

</c:forEach>

2 个答案:

答案 0 :(得分:2)

有几个问题在起作用。 正如@dbreaux所说, 您的所有textarea元素都采用相同的形式并具有相同的ID; 这是在您发布表单时导致逗号。

  1. 元素id应该对每个元素都是唯一的。您的元素ID是“模态”不是唯一的。让它独一无二。这不会导致逗号。
  2. 每个textarea的名称是textPath。由于您有多个具有一个名称的元素,因此在发布表单时,您将获得该元素名称的逗号分隔值列表。每个textarea必须具有唯一的名称。看起来每个模态都有一个唯一的名称(循环变量是modalName)。在textarea的名称中使用它。
  3. 如果您不能给每个textarea一个唯一的名称,请为每个textarea提供自己的表单。为每个模态div生成一个新表单。
  4. 以上是我在上面#2中提出的解决方案示例(注意:我没有运行使用spring标签ATM的系统,此示例未经测试):

    <c:forEach var="note" items="${model.modelname}">
        <div id="modal" class="hidden">
            <div class="modal-body-content">
                <form:textarea path="${note}textPath" />
            </div>
        </div>  
    </c:forEach>
    

答案 1 :(得分:1)

看来,在单个表单中,您有多个textarea字段具有完全相同的字段名称(“textPath”)(以及完全相同的DOM ID,这也不好)。

如果是这样,我并不感到惊讶,Spring将所有在该单一名称下提交的值组合在一起,用逗号分隔它们。您的模型bean的textPath字段是什么Java类型?我认为如果它是一个数组或者List,你可能会将值分开。但这只是猜测。