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

1 java session jsp arraylist

我试图将 ArrayList 从 handle.jsp 传递到 main.jsp,但它不允许我这样做。它一直显示“类型不匹配:无法从 Object 转换为 ArrayList”。

主.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>
Run Code Online (Sandbox Code Playgroud)

句柄.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>
Run Code Online (Sandbox Code Playgroud)

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

Adi*_*ave 5

问题就在这里..

ArrayList<String> hobbies = session.getAttribute("hobbies");
Run Code Online (Sandbox Code Playgroud)

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

ArrayList<String> hobbies = (ArrayList<String>)session.getAttribute("hobbies");
Run Code Online (Sandbox Code Playgroud)