我在MYSQL的表格中有一些记录。
public List<EmployeeTable> getEmployee() {
ArrayList<EmployeeTable> empList = new ArrayList<EmployeeTable>();
Connection con = (Connection) DbManager.getConnection();
try {
PreparedStatement pstmnt = (PreparedStatement) con.prepareStatement("select * from employeetable");
ResultSet rs = pstmnt.executeQuery();
while(rs.next()) {
empList.add(new EmployeeTable(rs.getString("firstName"),
rs.getString("lastName"),
rs.getString("displayName"),
rs.getString("dob"),
rs.getString("email"),
rs.getString("password"),
rs.getString("contact")));
}
return empList;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
我想将检索到的arrayList放入JSP中的表中。 我试图喜欢这个并且无法理解如何继续。
<h2 align="center"><font><strong>Retrieve data from database in jsp</strong></font></h2>
<table align="center" cellpadding="5" cellspacing="5" border="1">
<tr>
</tr>
<tr bgcolor="#A52A2A">
<td><b>id</b></td>
<td><b>firstName</b></td>
<td><b>lastName</b></td>
<td><b>displayName</b></td>
<td><b>email</b></td>
<td><b>password</b></td>
<td><b>contact</b></td>
</tr>
<%
try{
connection = DriverManager.getConnection(connectionUrl+dbName, userId, password);
statement=connection.createStatement();
String sql ="SELECT * FROM record";
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
%>
<tr bgcolor="#DEB887">
<td><%=resultSet.getString("id") %></td>
<td><%=resultSet.getString("firstName") %></td>
<td><%=resultSet.getString("lastName") %></td>
<td><%=resultSet.getString("displayName") %></td>
<td><%=resultSet.getString("email") %></td>
<td><%=resultSet.getString("password") %></td>
<td><%=resultSet.getString("contact") %></td>
</tr>
<%
}
} catch (Exception e) {
e.printStackTrace();
}
%>
</table>
我明白上面的代码是错误的,但我试了一下。 谁能告诉我如何以正确的方式做到这一点。
答案 0 :(得分:0)
将db代码移动到Servlet。为您提供上述评论的代码示例。
的Servlet
@Override
protected final void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
...
// fetch your data as list
List<EmployeeTable> employees = getEmployee();
//set attribute at request scope
request.setAttribute("employees", employees);
// or at session scope
request.getSession(true).setAttribute("employees", employees);
// do redirect/forward to your jsp..
}
// probably your getEmployee() method
以这种方式访问jsp中的列表..(省略导入)
...
<%
List<EmployeeTable> list = request.getAttribute("employees");
// iterate through your list
%>
或更好,如果你使用EL表达式并想要迭代..
<!-- request scope -->
<c:forEach var="employee" items="${employees}">
<!-- for session scope -->
<c:forEach var="employee" items="${sessionScope.employees}">