<% int i=0,s=0,uid=0,yid=0;
String uquestion="";
if(!showy.checkexam()){//判断是否存在试题
if(showy.showexam()){//如果存在,显示试题的题号和题目内容
s=showy.getsum();
uid=showy.getfid();
uquestion=showy.getfquestion();
yid=showy.getmid();
%>
<table width="64%" height="44" border="0" align="center">
<tr>
<td width="15%">题号</td>
<td width="38%">题目</td>
<td width="18%">修改</td>
<td width="29%">删除</td>
</tr>
<tr>
<td><%=uid%></td>
<td><%=uquestion%></td>
<td><a href="xmanageamendexam.jsp?xid=<%=uid%>&tid=<%=yid%>">修改</a></td>
<td><a href="xmangedelokexam.jsp?cid=<%=yid%>">删除</a></td>
</tr>
</table>
<% }else{
out.print("不能显示");
}
}else{
out.print("不存在题型");
}
%>
String uquestion="";
if(!showy.checkexam()){//判断是否存在试题
if(showy.showexam()){//如果存在,显示试题的题号和题目内容
s=showy.getsum();
uid=showy.getfid();
uquestion=showy.getfquestion();
yid=showy.getmid();
%>
<table width="64%" height="44" border="0" align="center">
<tr>
<td width="15%">题号</td>
<td width="38%">题目</td>
<td width="18%">修改</td>
<td width="29%">删除</td>
</tr>
<tr>
<td><%=uid%></td>
<td><%=uquestion%></td>
<td><a href="xmanageamendexam.jsp?xid=<%=uid%>&tid=<%=yid%>">修改</a></td>
<td><a href="xmangedelokexam.jsp?cid=<%=yid%>">删除</a></td>
</tr>
</table>
<% }else{
out.print("不能显示");
}
}else{
out.print("不存在题型");
}
%>
请问各位高手怎么写代码显示多行数据 (要求:在showexam.java中从数据库提取多行数据,然后在jsp页面中利用组件把showexam.class中的数据给提出并显示)
帮帮忙!!!
<td><%=uid%></td>
<td><%=uquestion%></td>
<td><a href="xmanageamendexam.jsp?xid=<%=uid%>&tid=<%=yid%>">修改</a></td>
<td><a href="xmangedelokexam.jsp?cid=<%=yid%>">删除</a></td>
</tr>
要放在if(rs.next())
{
}
循环里
<head>
<%@ page contentType="text/html;charset=gb2312" %>
<title>会员管理</title>
<link rel=stylesheet href="../style.css" type="text/css">
<script LANGUAGE="javascript">
function newwin(url) {
var newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=450");
newwin.focus();
return false;
}
</script>
</head>
<body>
<script LANGUAGE="javascript">
function submit10()
{
self.location.replace("admin_user.jsp")
}
</script>
<jsp:include page="../top.jsp" flush="true"/>
<center><p><h4><font color="blue">会员管理</font></h4></p>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="adminBean" scope="page" class="firm.firm" />
<%
//指定行数
int pageLine=10;
int totalRec=0;
int totalSub=0;
int intPage=1;
int i;
if (request.getParameter("page")!=null)
intPage=Integer.parseInt(request.getParameter("page"));try{
ResultSet countrs=null;//取得总记录数
countrs=adminBean.executeQuery("select count(*) as cnt from user where name<>'administrator'");
if (countrs.next())
totalRec=countrs.getInt("cnt");
countrs.close();
adminBean.closeStmt();}
catch(Exception e){
e.printStackTrace();
}//取得总页数
int intPageCount=0;
intPageCount = (totalRec+pageLine-1) / pageLine;
%>
<%
ResultSet RS = adminBean.executeQuery("SELECT * FROM user where name<>'administrator' order by id desc");
String name;
String userid;%>
<table border='1' cellspacing='0' width='500' bgcolor='#d7e3b9' bordercolorlight='#green' bordercolordark='#ECF5FF'>
<tr bgcolor='#c8cc98' align='center'>
<td width='8%'>ID</td>
<td width='14%'>会员名</td>
<td width='8%' >删除</td>
</tr>
<%
if (intPageCount>0)
{
for(i=1;i<=(intPage-1)*pageLine;i++)
RS.next();
for(i=1;i<=pageLine;i++) {
if (RS.next()) { name=RS.getString("name");
userid=RS.getString("id");
%>
<tr>
<td width='8%' align='center'><%=userid%></td>
<td width='14%' align='center'><%=name%></td>
<td width='8%' align='center'><a href="delete.jsp?id=<%=userid%>" onClick="return newwin(this.href);">删除</a></td>
</tr>
<%
}
}
RS.close();
}
%>
<!--以下用于分页显示 -->
<%
out.print("<tr>");
if (intPageCount*pageLine<totalRec)
intPageCount++;
if (intPage>intPageCount )
intPage=intPageCount;
if (intPage < 1 )
intPage=1;
out.print("<form method='POST' name=fPageNum action='admin_user.jsp'>");
out.print("<p align='left'>>>分页 ");
if (intPage<2)
out.print("<font color='999966'>首页 上一页</font> ");
else{
out.print("<a href='admin_user.jsp?page=1'>首页</a> ");
out.print("<a href='admin_user.jsp?page=" + (intPage-1) + "'>上一页</a> " );
}
if( intPage-intPageCount>=0 )
out.print("<font color='999966'>下一页 尾页</font>" );
else{
out.print("<a href='admin_user.jsp?page=" + (intPage+1)+ "'>下一页</a> <a href='admin_user.jsp?page=" + intPageCount + "'>尾页</a>");
}
out.print(" 页次:<strong><font color=red>"+intPage+"</font>/"+intPageCount+"</strong>页 " );
out.print(" 共<b>"+totalRec+"</b>条记录 <b>"+pageLine+"</b>条/页 " );
out.print(" 转到第<input type='text' name='page' size=2 maxlength=10 class=smallInput value="+intPage+">");
out.print("页<input class=buttonface type='submit' value='GO' name='cndok'></span></p></form>" ); out.print("</td>");
out.print("</tr>");
%>
</table></p>
<a href="javascript:window.close();">[关闭]</a>
</center>
<jsp:include page="../bottom.jsp" flush="true"/>
</body>
</html>
if(rs.next()){
//取数据(取出会员的id和会员名) }
//在.class文件中完成提取多行数据的操作 然后在Jsp页面中利用组件把.class文件提取的数据一一在页面中显示! 再帮帮忙,想想!
我 up
* Tmsheng(小唐蔡)**
*******************
package mshtang.html;
/**
* <p>Title: DataBaseQuery</p>
* <p>Description: 用于数据库翻页查询操作</p>
* <p>Copyright: 厦门一方软件公司版权所有Copyright (c) 2002</p>
* <p>Company: 厦门一方软件公司</p>
* @author 小唐蔡
* @version 1.0
*/
import java.sql.*;
import javax.servlet.http.*;
import java.util.*;
import mshtang.StringAction;
public class DataBaseQuery
{ private HttpServletRequest request;
private StringAction S;
private String sql;
private String userPara;
private String[][] resultArray;
private String[] columnNameArray;
private String[] columnTypeArray;
private int pageSize;
private int columnCount;
private int currentPageNum;
private int currentPageRecordNum;
private int totalPages;
private int pageStartRecord;
private int totalRecord;
private static boolean initSuccessful;
private String currentJSPPageName;
private String displayMessage; public DataBaseQuery()
{
S = new StringAction();
sql = "";
pageSize = 10;
totalRecord = 0;
initSuccessful = false;
currentJSPPageName = "";
displayMessage = "";
columnNameArray = null;
columnTypeArray = null;
currentPageRecordNum = 0;
columnCount = 0;
} /**功能:数据库初始化操作,其它操作的前提。
*
* @param conn:数据库连接;
* @param request:jsp页面request对象;
* @param querySQL:查询语句;
* @param pageSize:每页显示记录数;
* @param startPageNum:开始显示页码
*/
public void init(Connection conn, HttpServletRequest request, String querySQL, int pageSize, int startPageNum)
{
if(conn != null)
{
this.request = request;
this.sql = request.getParameter("querySQL");
this.userPara = request.getParameter("userPara");
if(sql == null || sql.equals(""))
{
sql = querySQL;
}
if(this.userPara == null)
{
this.userPara = "";
}
if(S.isContains(sql, "select;from", ";", true))
{
try
{
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
columnCount = rsmd.getColumnCount();
columnNameArray = new String[columnCount];
columnTypeArray = new String[columnCount];
String columnName;
String value;
while(rs != null && rs.next())
{
totalRecord++;
if(totalRecord == 1)
{
for(int i = 0; i < columnCount; i++)
{
columnNameArray[i] = rsmd.getColumnName(i + 1);
columnTypeArray[i] = rsmd.getColumnTypeName(i + 1);
}
}
}
if(rs != null)
{
rs.close();
}
//在总记录数大于0的情况下进行下列操作 //获取链接图象
if(totalRecord > 0 && pageSize > 0 && columnCount > 0 && startPageNum > 0)
{
//获取总页数
totalPages = totalRecord / pageSize;
int tempNum = totalRecord % pageSize;
if(tempNum != 0)
{
totalPages++;
} //获得当前页页码
String currentPage = request.getParameter("currentPageNum");
currentPageNum = (currentPage == null || currentPage.equals(""))? startPageNum:Integer.parseInt(currentPage);
currentPageNum = (currentPageNum > totalPages)?totalPages:currentPageNum;
currentPageNum = (currentPageNum <= 0)?1:currentPageNum; //获得当前页起始显示记录数
pageStartRecord = (currentPageNum - 1) * pageSize + 1;
pageStartRecord = (pageStartRecord <= 0)?1:pageStartRecord;
pageStartRecord = (pageStartRecord > totalRecord)?totalRecord:pageStartRecord; //获得当前页显示记录数
if(currentPageNum * pageSize > totalRecord)
{
currentPageRecordNum = totalRecord - (currentPageNum - 1) * pageSize;
}
else
{
currentPageRecordNum = pageSize;
}
resultArray = new String[currentPageRecordNum][columnCount]; //用于跳过前面不需显示的记录
int continueRowNum = 0; //用于跳过后面不再显示的记录
int breakRowNum = 0; ResultSet rs2 = st.executeQuery(sql);
while(rs2 != null && rs2.next())
{
//跳过前面不需显示的记录
continueRowNum++;
if(continueRowNum < pageStartRecord)
{
continue;
}
//存取当前页需显示的记录到二维数组
for(int i = 0; i < columnCount; i++)
{
value = rs2.getString(columnNameArray[i]);
value = (value == null)?"":value.trim();
resultArray[breakRowNum][i] = value;
}
//跳过后面不再显示的记录
breakRowNum++;
if(breakRowNum >= currentPageRecordNum)
{
break;
}
}
rs2.close();
}
st.close();
}
catch(SQLException e)
{
if(e != null)
{
e.printStackTrace();
}
}
}
transferSQL(sql);
initSuccessful = true;
}
} /**功能:数据库初始化操作,其它操作的前提,默认每页显示10条记录。
*
* @param conn:数据库连接;
* @param request:jsp页面request对象;
* @param querySQL:查询语句;
* @param startPageNum:开始显示页码
*/
public void init(Connection conn, HttpServletRequest request, String querySQL, int startPageNum)
{
init(conn, request, querySQL, 10, startPageNum);
} /**功能:数据库初始化操作,其它操作的前提,默认从第一页开始显示。
*
* @param conn:数据库连接;
* @param request:jsp页面request对象;
* @param querySQL:查询语句;
* @param pageSize:每页显示记录数;
*/
public void init(Connection conn, HttpServletRequest request, int pageSize, String querySQL)
{
init(conn, request, querySQL, pageSize, 1);
} /**功能:数据库初始化操作,其它操作的前提,默认从第一页开始显示,每页显示10条记录。
*
* @param conn:数据库连接;
* @param request:jsp页面request对象;
* @param querySQL:查询语句;
*/
public void init(Connection conn, HttpServletRequest request, String querySQL)
{
init(conn, request, querySQL, 10, 1);
} /**功能:给出没有初始化的提醒信息,内部调用。
*
*/
private static void getMessage()
{
if(!initSuccessful)
{
System.out.println("没有完成初始化");
}
} /**功能:得到查询结果的总记录数。
*
* @return
*/
public int getTotalRecord()
{
getMessage();
return totalRecord;
} /**功能:得到当前页的页码
*
* @return
*/
public int getCurrentPageNum()
{
getMessage();
return currentPageNum;
} /**功能:获得当前页记录数
*
* @return
*/
public int getCurrentPageRecord()
{
getMessage();
return currentPageRecordNum;
}