1

我的控制器返回给我一个对象列表,我在 jsp 上渲染。我想要做的是选择一行并将其标记为删除。

但我不知道该怎么做:

我从这个开始:

  form
    table
        c:forEach var="book" items="${booklist}" 
            tr
                td>{book.id}</td
                td>{book.Number}</td
                td>{book.Address}</td
                td><input type="submit" name="delete" value="{book.id}" ..</td
            tr
        c:forEach>
    table>

(...抱歉格式化...)

我对上面有两个问题,首先它在按钮上显示 id。其次,我仍然希望将所选行绑定到表单,以便我可以进行一些验证

有任何想法吗?

4

2 回答 2

1

我会以自己的形式包装每一行,并使用一个隐藏的输入来保存要删除的书的 id:

<form>
    <input type="hidden" name="id" value="${book.id}"/>
    <tr>
        <td>...</td>
        <td><input type="submit" value="Delete"/></td>
    </tr>
</form>

不要忘记你的 $s。

于 2012-08-30T20:31:33.793 回答
0

我会摆脱一个按钮,并使用一个锚标签(无论如何,你可以将锚的样式设置为看起来像带有 css 的按钮,并且它们与 :hover 伪元素等很好地放置在一起)

理想情况下,您的支持控制器将处理具有给定 ID 的删除操作。如果您使用的是 Spring-MVC,通常您可以拥有一个 RESTful URL,因此类似以下的内容可能会起作用:

<a href="/book/delete/${book.id}">Delete</a>

你唯一需要关心的事情,这是一个有效的关心,是确保不是每个人都可以随意删除你的东西。使用这种方法或您尝试使用的方法,任何人都可以执行 HTTP 请求,如果他们知道他们想要删除的内容的 id。确保像这样的破坏性操作受到安全凭证、验证用户等的保护。

于 2012-08-30T20:37:11.390 回答