如何使用session将ArrayList从一个jsp传递到另一个jsp

时间:2014-02-06 01:22:27

标签: java jsp session arraylist

我正在尝试将一个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>

我尝试将其作为字符串对象传递,并将其作为对象单独传递,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:4)

问题出在这里..

ArrayList<String> hobbies = session.getAttribute("hobbies");

尝试对其进行类型转换,因为getAttribute总是返回Object。

ArrayList<String> hobbies = (ArrayList<String>)session.getAttribute("hobbies");