一尘不染

如何编辑表格的字段?

jsp

我有一个表格来显示一长串项目,我想知道如何编辑字段并提交表单以更新它们?

 <form name="edit" method="POST" action="edit">
    <table border="4">
        <tbody>
            <c:forEach items="${basket.items}" var="item">
                <tr>
                    <td>
                        <input name="item.id" value="${item.id}"/>  
                    </td>
                    <td>
                        <input label="Price" value="${item.product.price}"/>
                        <br/>
                    </td>
                </tr>
            </c:forEach>
        </tbody>
    </table> 
    this is a new one
   <input id="edit" type="submit" name="edit" value="Edit"/>
</form>

阅读 409

收藏
2020-06-10

共1个答案

一尘不染

您正在使用带有JSTL和EL的Struts2,而不是Struts标签和OGNL …是否有特定的原因迫使您放弃大多数框架机制?

也就是说,您的输入无效(未指定类型),HTML中的“这是一个新的”句子似乎表明愿意插入新行,而不是编辑现有条目。您的描述和代码似乎在询问两种不同的事物:插入一个新的事物,只需调用该动作(或另一个动作)的另一种方法,称为“添加”,而不是“编辑”,发送一个元素并将其添加到集合中。无需在这里使用AJAX

如果相反,问题实际上是:

如何编辑字段并提交表单以更新它们?

这是这样的:

<s:form method="POST" action="edit">
    <table border="4">
        <tbody>
            <s:iterator value="basket.items" var="item" status="ctr">
                <tr>
                    <td>
                        <s:textfield name="item[%{#ctr.index}].id" />
                    </td>
                    <td>
                        <s:textfield name="item[%{#ctr.index}].product.price" />
                    </td>
                </tr>
            </s:iterator>
        </tbody>
    </table> 
    <s:submit value="Edit"/>
</form>
2020-06-10