2016-03-27 11 views
0

マイサーブレット。JDBCからJava MVCを介してデータを表示するJSPフォーム

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    String action = request.getParameter("action"); 
    String forward =""; 
    if(action.equalsIgnoreCase("search")) { 
     forward = FIND_COURSE; 
     String coursename = request.getParameter("coursename"); 
     dao.findCourse(coursename); 
    } 
    RequestDispatcher view = request.getRequestDispatcher(forward); 
     view.forward(request, response); 
} 

DAO等私は、JSPでこれを呼び出すことができますどのように

をプリペアドステートメントを持っていますか?

これはあなたが変数のコースを定義した方法を私たちに示したことはありませんので、私はちょうどそれが(ちょうどデモのために)として定義されていますと仮定します私の試み

<form action="search" method="GET"> 
<input type="text" name="coursename" /> 
<c:forEach var="course" items="${courses}"> 
<td><a href="${pageContext.request.contextPath}/FindCourse?coursename=${course.coursename}">${course.coursename}</a></td> 

答えて

1

ある

public class Course{ 
public String coursename;//just to match your variable 
public int numOfStudents; //students attending a particular course 
} 
List<Course> coursesList; 

JDBCコードがすべてのコースを取得してListオブジェクトに格納している場合は、 属性またはセッション(JSPスコープのオブジェクトで読み取る)として現在のリクエストにそのリストを追加する必要があります

サーブレットで

request.setAttribute("courses", coursesList);//coursesList is defined as List<Course> and has already been populated by the DAO/JDBC code 

を追加する今、あなたのテーブルには、データベースから取り出したすべてのコースが取り込まれます。

コース名で検索する場合は、DAO/JDBCコードをコース名でフィルタリングするだけです。サーブレットで、コース名が空でないことを確認するコードを追加し、必要なフィルタリングロジックを追加します。 (検索はパラメータではなくURLアドレスの一部です)

関連する問題