如何使用session.getAttribute在jsp中显示arraylist对象

时间:2016-11-15 01:27:12

标签: java arrays session

我正在尝试使用session.getAttribute()在jsp文件中的servlet中定义的ArrayList中显示对象以检索ArrayList。

<%= String name= (String[]) session.getAttribute("studentObject"); %>

这是我在jsp显示文件中的当前代码,错误显示&#34;语法错误,插入&#34;)&#34;完成MethodInvocation&#34;。语法对我来说没问题。知道错误是什么吗?

我定义了一个ArrayList,它包含我想要显示的学生对象。这就是我检索它的方式:

     String student_name = request.getParameter("studentName"); 
     ArrayList<Object[]> studentList = new ArrayList<Object[]>();
     if(student_name != null && student_name.length() > 0) {
  PreparedStatement preparedStatement = con.prepareStatement("Select * from users where firstname LIKE ? ");
  preparedStatement.setString(1, "%" +student_name+ "%");
  ResultSet resultSet = preparedStatement.executeQuery();

  while (resultSet.next()) {
      String first_name = resultSet.getString("firstname");
      String last_name = resultSet.getString("lastname");
      String email = resultSet.getString("email");

      Object[] student = {first_name,last_name,email};
      studentList.add(student);
      //System.out.println("First Name: " + first_name + "," + "Last Name: "           + last_name);
  }
  session.setAttribute("studentObject",studentList);
  //System.out.println(Arrays.toString(studentList.get(0)));

1 个答案:

答案 0 :(得分:1)

Math.floor()

你的声明在这里是错误的。您已将<%= String name= (String[]) session.getAttribute("studentObject"); %> 分配到一个Array字符串中。你的 session.getAttribute(“studentObject”)是一个ArrayList,这就是为什么你弄错了。删除你的scriplet上的等号session.getAttribute("studentObject"),因为你处于声明阶段。

只需将其更改为:

<%=

如果你想在你的arraylist中获得一系列学生名单。见下文:

<% ArrayList<Object[]> name= (ArrayList<Object[]>)session.getAttribute("studentObject"); %>

您无法将其强制转换为<% for(Object[] tempStudentList: name) { System.out.println(tempStudentList[0],tempStudentList[1],tempStudentList[2]); } %> ,因为array of String的元素可以包含不同的数据类型。您可以在检索每个元素时将Object转换为String。这是样本:

array of Object