如何将DROPDOWN菜单代码划分为servlet,dao和JSP?

这个问题在这里已经有了答案:

  • 使用MVC和DAO模式5的答案在JSP页面的HTML中显示JDBC ResultSet
  • 如何避免JSP文件中的Java代码? 28个答案

  • 为连接代码创建Servlet并使用JSTL避免JSP文件中的Java代码。 还可以使用Request Dispatcher在Servlet中设置属性中的值,然后JSTL将允许您使用自己的标记从Servlet获取属性,这将解决您在JSP中避免Java代码的问题。

    Servlet示例代码:

    request.setAttribute(“error_userID”,“UserID不正确”); //在属性中设置错误消息request.getRequestDispatcher(“/ jsp / common / login.jsp”)。forward(request,response); //将属性传递给jsp

    示例JSP代码

    <c:out value =“$ {requestScope.error_userID}”>

    标记命名将允许您在jsp中设置下拉值,并通过请求对象通过Servlet访问值。

    享受编码.. :)谢谢!


    写如Babak Behzadi所述

  • 分离DB连接性的DAO类
  • Servlet的
  • JSP
  • 在您的JSP文件中,写入JSTL代码...为

    <select name="name" id="id-select">
        <c:forEach items="<%=request.getAttribute("list")%>" var="i"> 
                    <option value="${i }">${i }</option>
        </c:forEach>
    </select>

    例如:

    讲师POJO课程:

    class Lecturer {
    
        ...
        private String fullName;
        ...
    
       //getters and setters
    }
    

    DAO类:

    class MyDAO {
    
       public List<Lecturer> getLecturers() {
         try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url="jdbc:oracle:thin:@localhost:1521:xe";
            String username="sys as sysdba";
            String password="sys";
            String query="select lecturerFullname from lecturer";
            Connection con=DriverManager.getConnection(url,username,password);
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery(query);
    
            List<Lecturer> list = new LinkedList<Lecturer>();
    
            while(rs.next()) {
                String fullname= rs.getString("lecturerFullname");
                Lecturer lec = new Lecturer();
                lec.setFullName(fullname);
                ...
                list.add(lec);
            }
         } catch(Exception e) {
         }
         return list;
       }    
    }
    

    在你的servlet中:

    class MyServlet {
    
       MyDAO myDao = ...;
    
       doGet() {
    
          List<Lecturer> list = myDoa.getLecturers();
          request.setAttribute("list",list); 
    
       }
    }
    

    最后在jsp文件中,您需要获取列表并进行迭代。 ;)

    EDITED

    JSP文件:

    <select>
    <%
       List<Lecturer> list = (List<Lecturer>) request.getAttribute("list");
       for(Lecturer lec : list) {
    %>
       <option><%=lec.getFullName()%></option>
    <%
       }
    %>
    </select>
    
    链接地址: http://www.djcxy.com/p/76611.html

    上一篇: How to divide this DROPDOWN menu codes to servlet, dao and JSP?

    下一篇: Using Scriptlets in JSP