我正在尝试将一个ArrayList从handle.jsp传递给main.jsp,但它不允许我这样做。它一直说“类型不匹配:无法从Object转换为ArrayList”。
main.jsp中:
<%@ page import="java.util.ArrayList" %>
<html>
<body>
<h1>Hobby Manager</h1>
<%
ArrayList<String> hobbies = session.getAttribute("hobbies");
out.println(hobbies.size());
out.println(session.getAttribute("hobbies"));
%>
<h2>Add new hobby!</h2>
<FORM action="handleAddHobby.jsp" method="get">
What new hobby are you wishing to add? <INPUT TYPE=text name=hobbyName /> <br/>
<INPUT TYPE=submit name=addHobby value="Add Hobby" />
</FORM>
</body>
</html>
handle.jsp:
<%@ page import="java.util.ArrayList" %>
<html>
<body>
<%
ArrayList<String> hobbies = new ArrayList<String>();
String hobbyName = request.getParameter("hobbyName");
if(hobbyName == null){
out.println("Please enter a hobby before clicking add! Dummy.<br/>");
}
else{
hobbies.add(hobbyName);
for(int index = 0; index < hobbies.size(); index ++){
out.println(hobbies.get(index) + "<br/>");
}
session.setAttribute("hobbies", hobbies);
}
%>
</body>
</html>
我尝试将其作为字符串对象传递,并将其作为对象单独传递,但似乎没有任何效果。
答案 0 :(得分:4)
问题出在这里..
ArrayList<String> hobbies = session.getAttribute("hobbies");
尝试对其进行类型转换,因为getAttribute总是返回Object。
ArrayList<String> hobbies = (ArrayList<String>)session.getAttribute("hobbies");