我正在尝试使用JSTL显示数据库数据,如下所示:
我的道;
public ArrayList getStudentFirstName(){
ArrayList v = new ArrayList();
Connection conn;
try{
conn = db.getDbConnection();
String sql = "select STU_FIRST_NAME, STU_MIDDLE_NAME, LAST_NAME from college_students_master";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String firstname = rs.getString("STU_FIRST_NAME");
String middlename = rs.getString("STU_MIDDLE_NAME");
String lastname = rs.getString("LAST_NAME");
v.add(firstname);
v.add(middlename);
v.add(lastname);
}
}catch(Exception asd){
System.out.println(asd.getMessage());
}
return v;
}
我的servlet:
public class displayservlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DetailsDao dd = new DetailsDao();
request.setAttribute("firstname", dd.getStudentFirstName());
RequestDispatcher view = request.getRequestDispatcher("DemoJSP.jsp");
view.forward(request, response);
}
}
我的JSP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
</head>
<body>
<b>The Demo Object Names Are:-
<br>
<table>
<c:forEach items="${firstname}" var="firstname">
<tr>
<td>${firstname}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
我的展示:
第一个名称和MiddleName都在同一列上。使用Jstl显示动态表的最佳方法是什么。一个例子也会得到赞赏。
编辑:我的预期输出是: 我添加了一个额外的One列:
答案 0 :(得分:5)
试试这个,
创建一个名为Name
的新Bean类public class Name
{
private String firstName;
private String middleName;
private String lastName;
// relavent getter setter
}
更改您的方法getStudentFirstName()
public ArrayList getStudentFirstName(){
ArrayList<Name> v = new ArrayList<Name>();
Connection conn;
try{
conn = db.getDbConnection();
String sql = "select STU_FIRST_NAME, STU_MIDDLE_NAME from college_students_master";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Name name = null;
while(rs.next()){
name = new Name();
name.setFirstName(rs.getString("STU_FIRST_NAME")); //set your firstName
name.setMiddleName(rs.getString("STU_MIDDLE_NAME")); //set your MiddleName
name.setLastName(rs.getString("LAST_NAME")); //set your LastName
v.add(name);
}
}catch(Exception asd){
System.out.println(asd.getMessage());
}
return v;
}
更改c:forEach
循环
<table border="1">
<thead>
<td>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
</td>
</thead>
<tbody>
<c:forEach items="${firstname}" var="name">
<tr>
<td>${name.firstName}</td>
<td>${name.middleName}</td>
<td>${name.lastName}</td>
</tr>
</c:forEach>
</tbody>
</table>