数组的循环数组列表 java
Looping Arraylist of Arrays java
我在模型中有一个方法可以从结果集中创建一个 ArrayList 数组,我需要从 jsp 交叉它,我做不到,有什么帮助吗?
这是arraylist的代码
public ArrayList listar(){
String sql="select * from eventos";
ArrayList lista=new ArrayList();
try {
st=con.createStatement();
rs=st.executeQuery(sql);
int NumColumnas=getRows(rs);
while(rs.next()){
String Fila[]=new String [NumColumnas];
for(int x=0;x<NumColumnas;x++){
Fila[x]=rs.getObject(x+1).toString();
}
lista.add(Fila);
}
} catch (SQLException ex) {
Logger.getLogger(EventosBean.class.getName()).log(Level.SEVERE, null, ex);
}
return lista;
}
从 jsp 我有这段代码,我以这种格式返回值 [Ljava.lang.String;@39dc94a4 [Ljava.lang.String;@5d013b69
EventosBean ev=new EventosBean();
ArrayList<EventosBean>arrayList=ev.listar();
out.println(arrayList.size());
Iterator<EventosBean> iterator = arrayList.iterator();
while (iterator.hasNext()) {
out.println(iterator.next());
}
您需要在 http servlet 请求中设置该属性并在您的 jsp:
中使用它
/** Java 控制器*/
request.setAttribute("events", lista);
/** JSP */
List<String> events = (List<String>) request.getAttribute("events");
出了点问题。在您的 listar
方法中,您将返回一个 ArrayList
。此 ArrayList
包含 String[]
类型的对象。您正在 ArrayList<EventosBean>
中捕获此输出,它需要 EventosBean
类型的对象。
如果您要打印在 listar
中添加的 String[]
的内容在 JSP 返回 ArrayList
,请按如下所示对代码进行少量更改。
public ArrayList<String[]> listar(){
String sql="select * from eventos";
ArrayList<String[]> lista=new ArrayList<String[]>();
try {
st=con.createStatement();
rs=st.executeQuery(sql);
int NumColumnas=getRows(rs);
while(rs.next()){
String Fila[]=new String [NumColumnas];
for(int x=0;x<NumColumnas;x++){
Fila[x]=rs.getObject(x+1).toString();
}
lista.add(Fila);
}
} catch (SQLException ex) {
Logger.getLogger(EventosBean.class.getName()).log(Level.SEVERE, null, ex);
}
return lista;
}
并且在您的 class 您正在呼叫的地方 listar
EventosBean ev=new EventosBean();
ArrayList<String[]> arrayList=ev.listar();
out.println(arrayList.size());
for(String[] strArray : arrayList){
String str="";
for(String str1: strArray)
str=str+" "+str1;
out.println(str);
}
我在模型中有一个方法可以从结果集中创建一个 ArrayList 数组,我需要从 jsp 交叉它,我做不到,有什么帮助吗?
这是arraylist的代码
public ArrayList listar(){
String sql="select * from eventos";
ArrayList lista=new ArrayList();
try {
st=con.createStatement();
rs=st.executeQuery(sql);
int NumColumnas=getRows(rs);
while(rs.next()){
String Fila[]=new String [NumColumnas];
for(int x=0;x<NumColumnas;x++){
Fila[x]=rs.getObject(x+1).toString();
}
lista.add(Fila);
}
} catch (SQLException ex) {
Logger.getLogger(EventosBean.class.getName()).log(Level.SEVERE, null, ex);
}
return lista;
}
从 jsp 我有这段代码,我以这种格式返回值 [Ljava.lang.String;@39dc94a4 [Ljava.lang.String;@5d013b69
EventosBean ev=new EventosBean();
ArrayList<EventosBean>arrayList=ev.listar();
out.println(arrayList.size());
Iterator<EventosBean> iterator = arrayList.iterator();
while (iterator.hasNext()) {
out.println(iterator.next());
}
您需要在 http servlet 请求中设置该属性并在您的 jsp:
中使用它/** Java 控制器*/
request.setAttribute("events", lista);
/** JSP */
List<String> events = (List<String>) request.getAttribute("events");
出了点问题。在您的 listar
方法中,您将返回一个 ArrayList
。此 ArrayList
包含 String[]
类型的对象。您正在 ArrayList<EventosBean>
中捕获此输出,它需要 EventosBean
类型的对象。
如果您要打印在 listar
中添加的 String[]
的内容在 JSP 返回 ArrayList
,请按如下所示对代码进行少量更改。
public ArrayList<String[]> listar(){
String sql="select * from eventos";
ArrayList<String[]> lista=new ArrayList<String[]>();
try {
st=con.createStatement();
rs=st.executeQuery(sql);
int NumColumnas=getRows(rs);
while(rs.next()){
String Fila[]=new String [NumColumnas];
for(int x=0;x<NumColumnas;x++){
Fila[x]=rs.getObject(x+1).toString();
}
lista.add(Fila);
}
} catch (SQLException ex) {
Logger.getLogger(EventosBean.class.getName()).log(Level.SEVERE, null, ex);
}
return lista;
}
并且在您的 class 您正在呼叫的地方 listar
EventosBean ev=new EventosBean();
ArrayList<String[]> arrayList=ev.listar();
out.println(arrayList.size());
for(String[] strArray : arrayList){
String str="";
for(String str1: strArray)
str=str+" "+str1;
out.println(str);
}