空指针异常,gameCommentssize()这里的问题,gameComments为null导致的。原因可能性很多,可能是数据库没导入数据,也可能是后台封装类的问题,要看具体代码。
在获取完所有的list后只需要截取你所需要的一部分list就可以了,所以要知道你所需要的是从哪里开始,到哪里结束。
有很多种方法,如果只是JSP里的话可以再次遍历获取的所有list集合,然后把满足条件的截取出来,开始的list下标应该是:(你要查询的页数-1)页面要显示的数据条数,也就是你这里的(page-1)pageRows,结束的地方也就是pagepageRows-1了。//这样应该可以写出来了吧
建议把这个方法封装到一个类里面,一个方法就实现一种功能。
当然这是比较麻烦的,现在流行框架,以后会学到的,在hibernate框架里用query语句很容易就实现了,现在时间多,
多看看hibernate框架吧,推荐你一本书,hibernate
in
action,有中文版的。这个是你们以后入门了hibernate后看的。
public
List
listOrderByItem(int
pageRows,int
page)
{
//page是要显示的页数,pageRows是你要显示的行数
Session
session
=
thisgetSession();//获取hibernate的session,hibernate自动生成的DAO里包含
String
hql
=
"from
TBL_storage
as
tbl_s
order
by
item";//hql语句
Query
query
=
sessioncreateQuery(hql);//hibernate的query,通过session创建
querysetFirstResult((page-1)pageRows);//设置开始的下标
querysetMaxResults(pageRows);//设置每页显示的行数
return
querylist();//得到所需要的结果集
}
JSP页面 显示数据库不同表的内容,需要把不同表的数据分别封装到list中。
<span style="font-size:12px;"><span style="font-size:14px;"><%@ page language="java" import="javasql,javaio,javautil"%>
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<style type="text/css">
table {
border: 2px #CCCCCC solid;
width: 360px;
}
td,th {
height: 30px;
border: #CCCCCC 1px solid;
}
</style>
</head>
<body>
<%
//驱动程序名
String driverName = "commysqljdbcDriver";
//数据库用户名
String userName = "root";
//密码
String userPasswd = "szy";
//数据库名
String dbName = "studentmanage";
//表名
String tableName = "student";
//联结字符串
String url = "jdbc:mysql://localhost:3306/" + dbName + "user="
+ userName + "&password=" + userPasswd;
ClassforName("commysqljdbcDriver")newInstance();
Connection connection = DriverManagergetConnection(url);
Statement statement = connectioncreateStatement();
String sql = "SELECT FROM " + tableName;
ResultSet rs = statementexecuteQuery(sql);
%>
<br>
<br>
<table align="center">
<tr>
<th>
<%
outprint("学号");
%>
</th>
<th>
<%
outprint("姓名");
%>
</th>
<th>
<%
outprint("专业");
%>
</th>
<th>
<%
outprint("班级");
%>
</th>
</tr>
<%
while (rsnext()) {
%>
<tr>
<td>
<%
outprint(rsgetString(1));
%>
</td>
<td>
<%
outprint(rsgetString(2));
%>
</td>
<td>
<%
outprint(rsgetString(3));
%>
</td>
<td>
<%
outprint(rsgetString(4));
%>
</td>
</tr>
<%
}
%>
</table>
<div align="center">
<br> <br> <br>
<%
outprint("数据查询成功,恭喜你");
%>
</div>
<%
rsclose();
statementclose();
connectionclose();
%>
</body>
</html></span><span style="font-size:24px;color: rgb(255, 0, 0);">
</span></span>
展示结果如下:
你要显示数据库中的数据,首先要建立连接,连到数据库。至于在servlet还是struts类,还是jsp页面是设计问题。最笨的方法就是在jsp里面嵌入java代码,连接数据库,写查询语句,将返回结果保存在容器中,如vector,然后显示。
foreach 一般 是针对 List 对象的,才存在 遍历
你的 syscount 是啥啊? 还能put?是个Map?
Map 想要啥的话 直接“” 就可以了呀
就是 直接${syscountabc}
再说你即使非要 遍历Map
也是${syskey } 有getKey 属性?确定不是 getKey() 方法?
1、在后台定义一个Servlet或者Action,接收jsp的参数去数据库查询数据,返回List
2、将从数据库查询的数据放在request中,如requestsetAttribute("studentList",studentList),输出到对应的jsp页面。
3、在jsp页面引入jstl标签,定义好一个html表格头
4、用jstl获取后台查询的数据,利用<c:foreach>标签循环输出到表格的<tr>中。
示例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html>
<body>
<table class="table table-bordered" >
<tr>
<th style="text-align:center;width:2%">序号</th>
<th style="text-align:center;width:5%">姓名</th>
<th style="text-align:center;width:6%">年龄</th>
</tr>
<c:forEach items="${studentList}" var="student" varStatus="status">
<tr>
<td style="text-align:center;">${status}</td>
<td style="text-align:center;">${studentusername}</td>
<td style="text-align:center;">${studentage}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
以上就是关于初学java,我想用jsp遍历输出数据库的信息,帮我看一下问题到底是什么全部的内容,包括:初学java,我想用jsp遍历输出数据库的信息,帮我看一下问题到底是什么、JSP中如何将查询数据库返回的数据分页显示在页面中、在一个JSP页面 显示数据库不同表的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)