JSP表单通过java MVC显示来自JDBC的数据

时间:2016-03-27 19:36:03

标签: java jsp servlets

我的小礼服。

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 个答案:

答案 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地址的一部分)