2011-10-29 37 views
2

私はベースからの学生のリストを私に示すjspを持っています。各生徒には、編集と削除の2つのボタンが必要です。 Editをクリックすると、リクエストは自分のサーブレットコントローラにリダイレクトされ、選択した生徒のデータを編集するための新しいJSPが開きます。削除をクリックすると、選択された生徒の削除要求が制御者に送信されます。問題は、私は、要求がそれをcontollerに送られたときにクリックされたボタン知られており、どのような学生されていることのようにボタンと私の学生を接続する方法を見つけ出すことはできませんですJSPで複数の送信ボタンを処理する

<%@page import="socnet2.Student"%> 
<!-- class Student emulates real student --> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page</title> 
</head> 
<body> 
<jsp:useBean class="socnet2.DAO" id="dao" scope="request"></jsp:useBean> 
<p><b>List of all students:</b></p> 
<form action="/JSP1/Controler" method="POST"> 

      <jsp:scriptlet> 
     for (Student s : dao.getAllStudents()) { 
      </jsp:scriptlet> 
      <p> <jsp:expression> s.getName() + " " + s.getSurname()</jsp:expression></p> 
      <input type="submit" name="Edit" value="Edit" /> 
      <input type="submit" name="Delete" value ="Delete"/> 
      <jsp:scriptlet> 
     } 
      </jsp:scriptlet> 

    </form> 
</body> 

:今ではこのようになります選択されました。私は各生徒に固有のIDが必要だと理解していますが、作成方法はわかりません...

答えて

4

私はStudentにはすでに何らかのIDがあると思います。たとえば、private String idと適切なゲッターpublic String getId()を持っているとしましょう。

 <input type="submit" name="Edit_<%=s.getId()%>" value="Edit" /> 
     <input type="submit" name="Delete_<%=s.getId()%>" value ="Delete"/> 

今、あなたは、サーバー側の学生を区別することができます:送信ボタンの名前を生成するときに、ちょうどこのIDを使用する必要があります。この場合

。 代わりにあなたは生徒ごとに別々のフォームを作成し、それぞれに与えることができますが、そのユニークなURLを形成:idea.Theため

<form method="post" url="http://myhost/myapp/students/<%s.getId()%>">

+0

おかげで問題です私は、クラス内の学生のためのユニークなIDを持っていません、 Studentクラスはsomekindラッパーであり、ベースには各ユーザーごとに異なる役割を持つ大きなテーブルUSERSしか存在しないため、単純な整数カウンタを使用して追加しました。上記のコードを変更して試してみました。 int counter = 0; ArrayList students = dao.getAllStudents(); session.setAttribute( "students"、students); for(Student s:dao.getAllStudents()){ リクエストを倍にしない。しかし、今はが悪いです – ferbolg

+0

DBへのリクエストを意味します。しかし、現在、ネットビーンズは、は終わりがないと言います – ferbolg

関連する問題