提示错误:
org.apache.jasper.JasperException: An exception occurred processing JSP page /showadddelete.jsp at line 55
即下划线那一行
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0不知道怎么解决?<%@page contentType="text/html" autoFlush="true"%>
<%@page pageEncoding="gb2312"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="test_web.*"%>
<%!//声明两个变量
int pageRecordNum=5;
int pageCount;
%>
<%
String tempPageNum=request.getParameter("pageno");
try{
if(tempPageNum==null){//在未使用上一页,下一页之前,pageno为null
pageCount=1;
}else {
pageCount=Integer.parseInt(tempPageNum);
}
}catch (Exception e){
e.printStackTrace();
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>全部论文</title>
</head>
<body>
<form action="AdminServlet" method="post" name="result">
<input type="hidden" name="pageno" value="<%=pageCount%>" /><!--该值用来记录当前的页数-->
<%
if(session.getAttribute("adminname")==null){
session.setAttribute("notlogin","notlogin");
%>
<jsp:forward page="login.jsp"/>
<% }
else if((session.getAttribute("showresult"))!=null){//结果不为空
%>
<table align="center" width="100%" bgcolor="dddddd" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>论文编号</td>
<td>论文名称</td>
<td>发表日期</td>
<td>期刊名称</td>
<td>作者派名</td>
<td>期刊类型</td>
<td>备注</td>
<td> </td>
</tr>
<%
//从session中获取的的showresult值作为结果集,
// 该属性的值在SearchProductServlet中设置
Vector vec=(Vector)session.getAttribute("showresult");
int size=vec.size();//获取记录总数
for(int i=(pageCount-1)*7;i<(pageCount-1)*7+pageRecordNum;i++){
ArticleBean tempbean=(ArticleBean)vec.elementAt(i);
int articleId=tempbean.getArticleId();//获取ID属性的值
%>
<tr>
<td><%=articleId%></td>
<td><%=tempbean.getArticleName()%></td>
<td><%=tempbean.getArticleDate()%></td>
<td><%=tempbean.getPeriodicalName()%></td>
<td><%=tempbean.getAuthorRank()%></td>
<td><%=tempbean.getPeriodicalType()%></td>
<td><%=tempbean.getRe()%> </td>
<td><a href="AdminServlet?articleId=<%=articleId%>&pageno=<%=pageCount%>&action=delete">删除</a></td>
<!-- 在获得的product_describe的值后面添加 ,这样即使product_describe为空也不影响显示效果-->
</tr>
<%
if(i>=size-1)
break;
}
%>
</table>
<%
if(pageCount!=1) {
%>
<a href="AdminServlet?action=previous&pageno=<%=pageCount-1%>">上一页</a>
<% }
int lastPageNum=size/pageRecordNum;
if(size%pageRecordNum!=0){
lastPageNum++;
}if(pageCount!=lastPageNum){
%>
<a href="AdminServlet?action=next&pageno=<%=pageCount+1%>">下一页</a>
<% }%>
<br>共<%=lastPageNum%>页,当前第<%=pageCount%>页<br>
<a href="AdminServlet?action=add">添加新论文</a>
<% } %>
</form>
</body>
</html>
org.apache.jasper.JasperException: An exception occurred processing JSP page /showadddelete.jsp at line 55
即下划线那一行
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0不知道怎么解决?<%@page contentType="text/html" autoFlush="true"%>
<%@page pageEncoding="gb2312"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="test_web.*"%>
<%!//声明两个变量
int pageRecordNum=5;
int pageCount;
%>
<%
String tempPageNum=request.getParameter("pageno");
try{
if(tempPageNum==null){//在未使用上一页,下一页之前,pageno为null
pageCount=1;
}else {
pageCount=Integer.parseInt(tempPageNum);
}
}catch (Exception e){
e.printStackTrace();
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>全部论文</title>
</head>
<body>
<form action="AdminServlet" method="post" name="result">
<input type="hidden" name="pageno" value="<%=pageCount%>" /><!--该值用来记录当前的页数-->
<%
if(session.getAttribute("adminname")==null){
session.setAttribute("notlogin","notlogin");
%>
<jsp:forward page="login.jsp"/>
<% }
else if((session.getAttribute("showresult"))!=null){//结果不为空
%>
<table align="center" width="100%" bgcolor="dddddd" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>论文编号</td>
<td>论文名称</td>
<td>发表日期</td>
<td>期刊名称</td>
<td>作者派名</td>
<td>期刊类型</td>
<td>备注</td>
<td> </td>
</tr>
<%
//从session中获取的的showresult值作为结果集,
// 该属性的值在SearchProductServlet中设置
Vector vec=(Vector)session.getAttribute("showresult");
int size=vec.size();//获取记录总数
for(int i=(pageCount-1)*7;i<(pageCount-1)*7+pageRecordNum;i++){
ArticleBean tempbean=(ArticleBean)vec.elementAt(i);
int articleId=tempbean.getArticleId();//获取ID属性的值
%>
<tr>
<td><%=articleId%></td>
<td><%=tempbean.getArticleName()%></td>
<td><%=tempbean.getArticleDate()%></td>
<td><%=tempbean.getPeriodicalName()%></td>
<td><%=tempbean.getAuthorRank()%></td>
<td><%=tempbean.getPeriodicalType()%></td>
<td><%=tempbean.getRe()%> </td>
<td><a href="AdminServlet?articleId=<%=articleId%>&pageno=<%=pageCount%>&action=delete">删除</a></td>
<!-- 在获得的product_describe的值后面添加 ,这样即使product_describe为空也不影响显示效果-->
</tr>
<%
if(i>=size-1)
break;
}
%>
</table>
<%
if(pageCount!=1) {
%>
<a href="AdminServlet?action=previous&pageno=<%=pageCount-1%>">上一页</a>
<% }
int lastPageNum=size/pageRecordNum;
if(size%pageRecordNum!=0){
lastPageNum++;
}if(pageCount!=lastPageNum){
%>
<a href="AdminServlet?action=next&pageno=<%=pageCount+1%>">下一页</a>
<% }%>
<br>共<%=lastPageNum%>页,当前第<%=pageCount%>页<br>
<a href="AdminServlet?action=add">添加新论文</a>
<% } %>
</form>
</body>
</html>
ArticleBean tempbean=(ArticleBean)vec.elementAt(i);
这个 i 判断有问题 你断下点。在i=多少的时候报错
ArticleBean tempbean=(ArticleBean)vec.elementAt(i); 只能自己一步步调试了
获取数据的代码如下:
public ArrayList getAllArticle(){
Statement stmt=null;
ResultSet rest=null;
ArrayList vec=new ArrayList();
this.connectTODB();
try{
stmt=this.con.createStatement();
rest=stmt.executeQuery("select * from article");
while(rest.next()){
ArticleBean temppro=new ArticleBean();
temppro.setArticleId(rest.getInt("article_id"));
temppro.setArticleName(rest.getString("article_name"));
temppro.setArticleDate(rest.getDate("article_date"));
temppro.setPeriodicalName(rest.getString("periodical_name"));
temppro.setAuthorRank(rest.getInt("author_rank"));
temppro.setsPeriodicalType(rest.getString("periodical_type"));
temppro.setRe(rest.getString("re"));
vec.add(temppro);
}
}这个应该是没有问题的才对啊,大家帮我看看,谢谢了
ArticleBean tempbean=(ArticleBean)vec.elementAt(i);
先在while循环后面看看 vec里有没有记录吧