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>

(...フォーマットして申し訳ありません...)

上記には 2 つの問題があります。まず、ボタンに 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>

あなたが気にしなければならない唯一のこと、そしてそれは有効な懸念ですが、誰もがあなたのものを勝手に削除できないようにすることです. このアプローチ、または使用しようとしているアプローチでは、削除したいもののIDを知っていれば、誰でもHTTPリクエストを実行できます。このような破壊的なアクションは、セキュリティ資格情報やユーザーの検証などで保護されていることを確認してください。

于 2012-08-30T20:37:11.390 に答える