如何将DROPDOWN菜单代码划分为servlet,dao和JSP?
这个问题在这里已经有了答案:
为连接代码创建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所述
在您的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?