public ArrayList getAll() throws SQLException
{ ArrayList list=new ArrayList();
Connection con=c.getCon();
String sql="select * from student";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
String []st=new String[4];
st[0]=rs.getInt("id")+"";
st[1]=rs.getString("name");
st[2]=rs.getString("classGrent");
st[3]=rs.getString("result");
list.add(st);
}
return list;
}
/*为何Eclipse提示ArrayList必须要用泛型呢如下:
ArrayList<String[]> list=new ArrayList<String[]>();
如果用了泛型,我显示层的代码是:
<table width="451" height="79" border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>成绩</td>
<td>删除</td>
<td>修改</td>
</tr>
<%
ArrayList list=bean.getAll();
for(int i=0;i<list.size();i++)
{String st[]=(String[])list.get(i);
%>
<tr>
<td>
<%=st[1]%></td>
<td>
<%=st[2]%></td>
<td>
<%=st[3] %></td>
<td>
<a href="edit.jsp?id=<%=st[0]%>">修改</a>
</td>
<td>
<a href="del.jsp?id=<%=st[0]%>">删除</a>
</td>
</tr>
<%} %>
</table>
中建立的ArrayList怎么写,这样写错了
*/
{ ArrayList list=new ArrayList();
Connection con=c.getCon();
String sql="select * from student";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
String []st=new String[4];
st[0]=rs.getInt("id")+"";
st[1]=rs.getString("name");
st[2]=rs.getString("classGrent");
st[3]=rs.getString("result");
list.add(st);
}
return list;
}
/*为何Eclipse提示ArrayList必须要用泛型呢如下:
ArrayList<String[]> list=new ArrayList<String[]>();
如果用了泛型,我显示层的代码是:
<table width="451" height="79" border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>成绩</td>
<td>删除</td>
<td>修改</td>
</tr>
<%
ArrayList list=bean.getAll();
for(int i=0;i<list.size();i++)
{String st[]=(String[])list.get(i);
%>
<tr>
<td>
<%=st[1]%></td>
<td>
<%=st[2]%></td>
<td>
<%=st[3] %></td>
<td>
<a href="edit.jsp?id=<%=st[0]%>">修改</a>
</td>
<td>
<a href="del.jsp?id=<%=st[0]%>">删除</a>
</td>
</tr>
<%} %>
</table>
中建立的ArrayList怎么写,这样写错了
*/
2.修改获取list的方法的出参为带有泛型指定的ArrayList类型,或者获取后强制转型。
<tr>
<td><%=st[0]%</td>
<td>
<%=st[1]%></td>
<td>
<%=st[2]%></td>
<td>
<%=st[3] %></td>
<td>
<a href="edit.jsp?id=<%=st[0]%>">修改</a>
</td>
<td>
<a href="del.jsp?id=<%=st[0]%>">删除</a>
</td>
public List<String[]> getAll() throws SQLException
{ List<String[]> list=new ArrayList<String[]>();
Connection con=c.getCon();
String sql="select * from student";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
String []st=new String[4];
st[0]=rs.getInt("id")+"";
st[1]=rs.getString("name");
st[2]=rs.getString("classGrent");
st[3]=rs.getString("result");
list.add(st);
}
rs.close();
stmt.close();
con.close();
return list;
}
/*显示层的代码是:
<table width="451" height="79" border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>成绩</td>
<td>删除</td>
<td>修改</td>
</tr>
<%
List<String[]> list=bean.getAll();
for(int i=0;i<list.size();i++)
{String st[]=list.get(i);
%>
<tr>
<td>
<%=st[1]%></td>
<td>
<%=st[2]%></td>
<td>
<%=st[3] %></td>
<td>
<a href="edit.jsp?id=<%=st[0]%>">修改</a>
</td>
<td>
<a href="del.jsp?id=<%=st[0]%>">删除</a>
</td>
</tr>
<%} %>
</table>
*/
朋友,我注释里的ArrayList 这个怎么改
这句依然报错啊
你那样可能是在jsp强制转型为String[]时出错,不过为什么不把
String []st=new String[4];
st[0]=rs.getInt("id")+"";
st[1]=rs.getString("name");
st[2]=rs.getString("classGrent");
st[3]=rs.getString("result");
list.add(st);
封装到一个对象,然后设置属性,最后list.add(对象),这样更好,使用数组也行,但这样更好。
第二,JSP要Import这个List接口
<%page import="java.util.List" %>
第三,bean要useBean进来
<jsp:useBean id="bean" class="YourClass" />其他设想不出来还能出什么错。
org.apache.jasper.JasperException: An exception occurred processing JSP page /List.jsp at line 3734: <td>修改</td>
35: </tr>
36: <%
37: List<String[]> list=bean.getAll();
38: for(int i=0;i<list.size();i++)
39: {String st[]=(String[])list.get(i);
40: %>
2、从ArrayList中读取数据一定要指定类型,String[] st = (String[])list.get(i);
或者可以用另外一种方法
for(Iterator i = list.iterator();i.hasNext();){
String[] st = (String[])i.next();
}
List<String[]> list=(List<String[]>)bean.getAll();
public class Student{
private int id;
private String name;
private String classGrent;
private String result;
// getter setter..
}ArrayList<Student> list=new ArrayList<Student>();while(rs.next())
{
Student s=new Student();
s.setId(rs.getInt("id"));
s.setName(rs.getString("name"));
s.setClassGrent(rs.getString("classGrent"));
s.setResult(rs.getString("result"));
list.add(s);
}<table width="451" height="79" border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>班级</td>
<td>成绩</td>
<td>删除</td>
<td>修改</td>
</tr>
<%
List<Student> list=bean.getAll();
for(int i=0;i<list.size();i++)
{Student s =list.get(i);
%>
<tr>
<td>
<%=s.getId();%></td>
<td>
<%=s.getName();%></td>
<td>
<%=s.getClassGrent(); %></td>
<td>
<a href="edit.jsp?id=<%=st[0]%>">修改</a>
</td>
<td>
<a href="del.jsp?id=<%=st[0]%>">删除</a>
</td>
</tr>
<%} %>
</table>