2016-03-27 5 views
0

Mein Servlet.JSP-Formular zum Anzeigen von Daten von JDBC über Java MVC

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); 
} 

Die DAO hat die vorbereiteten Anweisungen usw.

Wie kann ich das nenne in einer jsp?

Dies ist mein Versuch

<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> 

Antwort

1

Da Sie uns nie gezeigt, wie man die Kurse Variable definiert ist, werde ich es einfach davon ausgehen, definiert als (nur zum Zwecke der Demonstration)

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

Vorausgesetzt, dass Ihr JDBC-Code alle Kurse abruft und in einem List-Objekt speichert, müssen Sie diese Liste immer noch der aktuellen Anfrage als -Attribut oder als Sitzung hinzufügen (lesen Sie Informationen zu JSP-Objekten).

In Ihrem Servlet hinzufügen

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

Jetzt wird Ihre Tabelle mit allen aus der Datenbank geholt Kurse bevölkert bekommen.

Wenn Sie nach dem Kursnamen suchen möchten, verwenden Sie einfach Ihren DAO/JDBC-Code nach Kursnamen. Fügen Sie in Ihrem Servlet einfach Code hinzu, um zu prüfen, ob ein Kursname nicht leer ist, und fügen Sie dann die erforderliche Filterlogik hinzu.

Auch Ihre Form lässt vermuten, dass Sie http://some_url/search nennen wollen (Suche kein Parameter, sondern ein Teil der URL-Adresse)

Verwandte Themen