weixin_34181904
weixin_34181904
采纳率0%
2017-05-19 08:41

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条回答

  • a314066646 FEN_TA 4年前

    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》

    点赞 2 评论 复制链接分享
  • weixin_34181904 weixin_34181904 4年前

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

    点赞 评论 复制链接分享

相关推荐