我的小礼服。
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>
答案 0 :(得分: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范围对象上读取)
在你的servlet中添加
request.setAttribute("courses", coursesList);//coursesList is defined as List<Course> and has already been populated by the DAO/JDBC code
现在,您的表格将填充从数据库中提取的所有课程。
如果您想按课程名称搜索,那么只需按课程名称进行DAO / JDBC代码过滤。在你的servlet中只需添加代码来检查课程名称是否为空,然后添加必要的过滤逻辑。
此外,您的表单建议您要拨打http://some_url/search(搜索不是参数,而是URL地址的一部分)