2016-11-15 3 views
0

Я пытаюсь отобразить объекты в ArrayList, определенные в моем сервлете в файле jsp, используя session.getAttribute() для извлечения ArrayList.Как отображать объекты arraylist в jsp using session.getAttribute

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

Это мой текущий код в файле отображения Jsp и ошибка говорит «Ошибка синтаксиса, вставить„)“для завершения MethodInvocation». Синтаксис выглядит хорошо для меня. Любая идея, что такое ошибка?

Я определил 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
<%= String name= (String[]) session.getAttribute("studentObject"); %> 

ваш declartion неправильно здесь. вы назначили session.getAttribute("studentObject") в строку массива. ваш session.getAttribute ("studentObject") - это ArrayList, поэтому вы ошибаетесь. Удалите знак равенства <%= на вашем скрипте, потому что вы находитесь на этапе декларации.

Просто измените его следующим образом:

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

И если вы хотите получить массив списка студентов в вашем ArrayList. Смотрите ниже:

<% for(Object[] tempStudentList: name) { 
    System.out.println(tempStudentList[0],tempStudentList[1],tempStudentList[2]); 
} %> 

вы не можете бросить его array of String потому array of Object может иметь другой тип данных о его элемента. Вы можете преобразовать объект в строку в каждый элемент, когда вы его извлекаете. Вот пример:

<% for(Object[] tempStudentList: name) { 
    for(Object tempStudent : tempStudentList) { 
     String student = (String) tempStudent; 
     System.out.println(student); 
    } 
} %> 
+0

Привет, я попытался это, но есть ошибка говоря «левая сторона присваивания должен быть переменной» – purplewind

+0

я просто редактировал его, я меняю строку в Object []. Я этого не заметил. извините – msagala25

+0

Привет, я по-прежнему получаю ту же ошибку «левая сторона задания должна быть переменной», а также эта ошибка «Синтаксическая ошибка на токенах, неудачных конструкциях» и еще несколько ошибок , :( – purplewind

Смежные вопросы