非常急,怎样把JAVABEAN中数组存到session,然后在servlet中获取,最后在JSP页面显示出来,下面是我的代码 10
/**************Excel.java*******************/publicclassExcel{ArrayList<Integer>list=...
/**************Excel.java*******************/
public class Excel {
ArrayList<Integer> list = new ArrayList<Integer>();
public ArrayList<Integer> getList() {
return list;
}
public void setList(ArrayList<Integer> list) {
this.list = list;
}
public List addCustomerAssign(File file)// 添加客服中心数据
{
// File file=new File("");
List<User> ls = new ArrayList<User>();
jxl.Workbook rwb = null;
try {
InputStream is = new FileInputStream(file);
rwb = Workbook.getWorkbook(is);
// String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm ",new
// Date()).toString();
// Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
// Sheet的下标是从0开始
// 获取第一张Sheet表
Sheet rs = rwb.getSheet(0);
// 获取Sheet表中所包含的总列数
// int rsColumns = rs.getColumns();
// 获取Sheet表中所包含的总行数
int rsRows = rs.getRows();
// rs.getCell(列,行);
for (int i = 1; i < rsRows; i++) {
String cell1 = rs.getCell(0, i).getContents().trim();// 序号
String cell7 = rs.getCell(1, i).getContents().trim()
.toUpperCase();// 公司名称
String cell8 = rs.getCell(2, i).getContents().trim()
.toUpperCase();// 公司名称
if (cell1 != null && !cell1.equals("") && cell7 != null
&& !cell7.equals("") && cell8 != null
&& !cell8.equals(""))// 判断当前行是否为有效行 是插入否找下行
{
User ms = new User();
ms.setTitle(cell1);
ms.setAuthor(cell7);
ms.setContent(cell8);
ls.add(ms);
} else {
System.out.println("第" + i + "条数据插入失败");//问题在这里,我想把插入失败数据的条数保存到数组中,然后到前台现实
list.add(i);
System.out.println(list);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 操作完成时,关闭对象,释放占用的内存空间
rwb.close();
}
return ls;
}
}
/*******************servlet类************************/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int a = 0;
Insert in = new Insert();
Excel ex = new Excel();
String path = request.getParameter("excel");
File file = new File(path);
List ls = ex.addCustomerAssign(file);
Iterator iter = ls.iterator();
while (iter.hasNext()) {
User ms = (User) iter.next();
if (in.insertexcel(ms)) {
System.out.println("成功");
} else {
System.out.println("失败");
}
a++;
}
System.out.println("成功插入数据条数" + a);
List list= (List) request.getSession().getAttribute("list");
System.out.println("插入失败条数"+list);
//request.getSession().setAttribute("list", list);
request.getSession().setAttribute("list", list);
request.setAttribute("userlist", a);
request.getRequestDispatcher("/finish.jsp").forward(request,response);
return;
}
我这个,你可以从上面的代码中看到是在Excel.java类中,不是servlet类。那我在Excel类中,这样写对不?
HttpServletRequest request=null; HttpSession session = request.getSession();
session.setAttribute("num",1+""); 展开
public class Excel {
ArrayList<Integer> list = new ArrayList<Integer>();
public ArrayList<Integer> getList() {
return list;
}
public void setList(ArrayList<Integer> list) {
this.list = list;
}
public List addCustomerAssign(File file)// 添加客服中心数据
{
// File file=new File("");
List<User> ls = new ArrayList<User>();
jxl.Workbook rwb = null;
try {
InputStream is = new FileInputStream(file);
rwb = Workbook.getWorkbook(is);
// String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm ",new
// Date()).toString();
// Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
// Sheet的下标是从0开始
// 获取第一张Sheet表
Sheet rs = rwb.getSheet(0);
// 获取Sheet表中所包含的总列数
// int rsColumns = rs.getColumns();
// 获取Sheet表中所包含的总行数
int rsRows = rs.getRows();
// rs.getCell(列,行);
for (int i = 1; i < rsRows; i++) {
String cell1 = rs.getCell(0, i).getContents().trim();// 序号
String cell7 = rs.getCell(1, i).getContents().trim()
.toUpperCase();// 公司名称
String cell8 = rs.getCell(2, i).getContents().trim()
.toUpperCase();// 公司名称
if (cell1 != null && !cell1.equals("") && cell7 != null
&& !cell7.equals("") && cell8 != null
&& !cell8.equals(""))// 判断当前行是否为有效行 是插入否找下行
{
User ms = new User();
ms.setTitle(cell1);
ms.setAuthor(cell7);
ms.setContent(cell8);
ls.add(ms);
} else {
System.out.println("第" + i + "条数据插入失败");//问题在这里,我想把插入失败数据的条数保存到数组中,然后到前台现实
list.add(i);
System.out.println(list);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 操作完成时,关闭对象,释放占用的内存空间
rwb.close();
}
return ls;
}
}
/*******************servlet类************************/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int a = 0;
Insert in = new Insert();
Excel ex = new Excel();
String path = request.getParameter("excel");
File file = new File(path);
List ls = ex.addCustomerAssign(file);
Iterator iter = ls.iterator();
while (iter.hasNext()) {
User ms = (User) iter.next();
if (in.insertexcel(ms)) {
System.out.println("成功");
} else {
System.out.println("失败");
}
a++;
}
System.out.println("成功插入数据条数" + a);
List list= (List) request.getSession().getAttribute("list");
System.out.println("插入失败条数"+list);
//request.getSession().setAttribute("list", list);
request.getSession().setAttribute("list", list);
request.setAttribute("userlist", a);
request.getRequestDispatcher("/finish.jsp").forward(request,response);
return;
}
我这个,你可以从上面的代码中看到是在Excel.java类中,不是servlet类。那我在Excel类中,这样写对不?
HttpServletRequest request=null; HttpSession session = request.getSession();
session.setAttribute("num",1+""); 展开
2个回答
展开全部
这个,你如果是要来储存数组,也是一样的道理
比如 int [] shu={1,2,3,4};
session.setAttribute("num",shu);
int[] no= session.getAttribute("num");
取出来,然后用for(int i=0;i<no.length;i++)
{}输出;
还有,你说空指针异常,我想问一下,你这个session 到底是在什么地方?
是在servlert还是在页面?
如果在severlt 则就要 Session session=request.getSession();
获得对象,如果是在jsp页面,直接用。因为这是隐藏对象。
比如 int [] shu={1,2,3,4};
session.setAttribute("num",shu);
int[] no= session.getAttribute("num");
取出来,然后用for(int i=0;i<no.length;i++)
{}输出;
还有,你说空指针异常,我想问一下,你这个session 到底是在什么地方?
是在servlert还是在页面?
如果在severlt 则就要 Session session=request.getSession();
获得对象,如果是在jsp页面,直接用。因为这是隐藏对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询