struts2的action中得到一个对象数组,如何把它存入session并在jsp中迭代输出

action代码:
package org.action;
import java.util.*;
import javax.jms.Session;
import javax.servlet.http.HttpSession;
import org.model.*;
import org.dao.*;
import com.opensymphony.xwork2.*;
public class QueryAllStudent extends ActionSupport{
Student studentList[]=new Student[20];
public String execute() throws Exception{
QueryAllStudentDao qas=new QueryAllStudentDao();
studentList = qas.queryAllStudent();
System.out.println(studentList[0].getSname());
//System.out.println(studentList[1].getSno());
//System.out.println(studentList[2].getSname());
int a=5;
if(studentList!=null)
{

        Map session=ActionContext.getContext().getSession();
        for(int i=0;i<studentList.length;i++)
         { 

            session.put("studentlist",studentList[i]);
            session.put("index",a);
            System.out.println(session.toString());
             }
        return SUCCESS;

     }
     else{
         return ERROR;
     }
 }

}

Dao文件的代码:
package org.dao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import org.model.*;
import org.db.*;
public class QueryAllStudentDao{
Connection conn;
public Student[] queryAllStudent(){
Student StudentList[]=new Student[20];
try {
conn=DBConn.getConn();
System.out.println(conn.isClosed());
PreparedStatement pstmt=conn.prepareStatement("select * from student");
ResultSet rs=pstmt.executeQuery();
rs.last();
int count=rs.getRow();
rs.first();
if(rs.next()){
rs.first();
for(int i=0;i<count;i++)
{ Student s=new Student();
s.setSname(rs.getString(1));
s.setSno(rs.getInt(2));
s.setSgender(rs.getString(3));
s.setJavaScore(rs.getInt(4));
s.setAndroidScore(rs.getInt(5));
s.setLinuxScore(rs.getInt(6));
s.setSavgscore(rs.getFloat(7));
s.setStotalscore(rs.getInt(8));
StudentList[i]=s;
rs.next();
//System.out.println(StudentList[i].getSname());
}
return StudentList;
}

        else{   
        return null;}
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }finally{
        DBConn.CloseConn();
    }
}

}

jsp内容:



以下为所查询信息:

学生学号 学生姓名 学生性别 Java成绩 Android成绩 Linux成绩 平均成绩 总分 操作处理
删除修改

返回主页

已经把resultset结果集返回到一个对象数组里,想把对象数组存到session中返回到jsp页面并且在jsp页面中输出对象数组中对象的各个属性....本来已经能够正常传值了...手贱改了点东西又重新来过了,求大神帮我看一下。。。查很久了,闹心

2个回答

ActionContext.getContext().getSession().put("student",studentList);

JSP添加标签《%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%》

在前台用EL表达式

《c:forEach items="${student}" varStatus="s"》
${s.name}//取名字
《/c:forEach》

qq_36368794
qq_36368794 回复weixin_34181904: 怎么解决的,能不能贴一下代码
2 年多之前 回复
weixin_34181904
weixin_34181904 最终用了<s:iterator>没有使用 <c:forEach>不过总算成功改出来了,谢谢大神指点
3 年多之前 回复
a314066646
FEN_TA 中文尖括号换成英文的
3 年多之前 回复

请忽略里面设置的一些变量....为了试试传值能不能成功设置的》。。求大神指点

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐