我正在尝试使用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)));
答案 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