我是jsp和javaEE的新手并尝试执行以下操作:我进行数据库搜索并查找用户的所有帐户。然后我想列出它们,在asp.net gridview中是一个非常有用的工具,我们可以将gridView的复选框,按钮等添加到所有行,并向这些行添加特定事件。在java中这样做的方法是什么?我应该安装扩展吗?这是我的代码:
try {
connect();
PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
"SELECT * FROM Accounts where username = ?");
checkDB.setString(1,username);
ResultSet rs =null;
rs=(ResultSet) checkDB.executeQuery();
if(rs.next())
{
//LIST THE RESULTS AS A GRIDVIEW HERE
rs.close();
return true;
}
else
{
rs.close();
System.out.println("awwwwww");
return false;
}
} catch (Exception e) {
System.out.println("cannot connect");
e.printStackTrace();
return false;
}
以下是我想要的内容的截图:
答案 0 :(得分:1)
在将要显示的数据保存到会话或请求对象后,您的Servlet可以调度JSP以显示结果。
您可以使用标记库displaytag获得类似的外观。 例如,下面的代码用于生成http://nciml.mathteamhosting.com/generated/topStudents.htm
<%-- At top of page --%>
<%@taglib prefix="display" uri="http://displaytag.sf.net" %>
<display:table id="row" name="rankedList" >
<display:column property="rank" title="Rank" />
<display:column property="firstName" title="First" />
<display:column property="lastName" title="Last" />
<display:column property="mySchool" title="School" />
<display:column property="c1" title="C1" />
<display:column property="c2" title="C2" />
<display:column property="c3" title="C3" />
<display:column property="c4" title="C4" />
<display:column property="c5" title="C5" />
<display:column property="cTotal" title="Total Points" />
</display:table>
在上面的代码中,rankingList是RankedStudent的ArrayList,它是列出了属性的POJO。您必须为要与displayTag一起使用的每个属性使用公共getter和setter。
答案 1 :(得分:0)
您可以使用html的表格标签来显示您在屏幕截图中给出的结果。
<table> <tr><th>heading</th><th>heading</th><th></th><th></th><th></th><th></th><th></th></tr><tr>
if(rs.next())
{
<tr>
<td>data</td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
}
rs.close();
答案 2 :(得分:0)
ResultSet rs = null;
ArrayList aListOfBeans;
try {
connect();
PreparedStatement checkDB = (PreparedStatement) con
.prepareStatement("SELECT * FROM Accounts where username = ?");
checkDB.setString(1, username);
rs = (ResultSet) checkDB.executeQuery();
while (rs.next()) {
if (aListOfBeans == null)
aListOfBeans = new ArrayList();
// LIST THE RESULTS AS A GRIDVIEW HERE
String crn = rs.getString("CRN");
String courseCode = rs.getString("COURSE_CODE");
// etc etc etc (for all the columns)
MyAccountBean aBean = new MyAccountBean();
aBean.setCRN(crn);
aBean.setCourseCode(courseCode);
// etc etc etc
aListOfBeans.add(aBean);
}
if (aListOfBeans == null) {
System.out.println("awwwwww");
}
} catch (Exception e) {
System.out.println("cannot connect");
e.printStackTrace();
return false;
} finally {
if (rs != null)
rs.close();
// closing rs, con, checkDB in finally block *ensures* they get
// closed even if Exception is caught
// i didn't write for the others, but you get the idea
}
return aListOfBeans;
理想情况下,上面的代码应该在您的Java servlet中,而不是在JSP页面上。您的JSP应该只显示数据,而不是数据库连接或从数据库中获取数据。
稍后在JSP中,从会话中获取ArrayList aListOfBeans,并在bean(aBean.getCRN()
)上使用getter方法来获取数据。在ArrayList上使用for循环来动态生成表。