【问题标题】:Send an arrayList from a jsp to a servlet将 arrayList 从 jsp 发送到 servlet
【发布时间】:2021-08-03 01:51:28
【问题描述】:

这个项目的目的是从 arrayLists 中移动对象,并擦除它们。 我在 servlet 上创建了三个 arrayList,这些 arrayList 是我想要使用的,我已经知道如何在 JSP 页面中显示它们,以及如何移动和擦除它们,但我的问题是我希望能够检索 arrayList 对象的当前状态,因为我想要做的元素以及移动和擦除是通过我创建的一些按钮。 因此,我尝试在引用 jsp servlet 的表单中创建按钮,但是当我按下按钮时不显示任何内容,我使用 System.out.println() 来恢复值,从JSP,但我什么也没得到。

这是 servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    // response.getWriter().append("Served at: ").append(request.getContextPath());
    System.out.println("Dentro Servlet");
    String borrar = request.getParameter("borrar");
    String btn1 = request.getParameter("button1");
    System.out.println("El btn1 devuelve: " + btn1);

    ArrayList<ObjetosArreglo> personas = new ArrayList<ObjetosArreglo>();
    personas.add(new ObjetosArreglo("Cesar"));
    personas.add(new ObjetosArreglo("Miguel"));
    personas.add(new ObjetosArreglo("Chavez"));
    personas.add(new ObjetosArreglo("Linares"));
    personas.add(new ObjetosArreglo("TATAMASTER"));

    ArrayList<ObjetosArreglo> mascotas = new ArrayList<ObjetosArreglo>();
    mascotas.add(new ObjetosArreglo("Clifford"));
    mascotas.add(new ObjetosArreglo("Chuzo"));
    mascotas.add(new ObjetosArreglo("Hoshi"));
    mascotas.add(new ObjetosArreglo("Persian"));
    mascotas.add(new ObjetosArreglo("Bebeto"));
    
    ArrayList<ObjetosArreglo> comidas = new ArrayList<ObjetosArreglo>();
    comidas.add(new ObjetosArreglo("Carne"));
    comidas.add(new ObjetosArreglo("Queso"));
    comidas.add(new ObjetosArreglo("Yogur"));
    comidas.add(new ObjetosArreglo("Pan dulce"));
    comidas.add(new ObjetosArreglo("Pasta"));
    
    if ("1".equals(borrar)) {
        MetodosUtiles.borrarElemento(personas, 1);
    }
    if (request.getParameter("button1")!= null) {
        System.out.println("Button 1"+request.getParameter("button1"));
        MetodosUtiles.borrarPriElemento(personas);
    }else if (request.getParameter("button2")!=null) {
        MetodosUtiles.moverUltPriElemento(personas, comidas);
    } else if (request.getParameter("button3")!= null) {
        MetodosUtiles.moverPriElemento(comidas, mascotas);
    }

    request.setAttribute("ArrayCom", comidas);      
    request.setAttribute("ArrayMasc", mascotas);
    request.setAttribute("ArrayPer", personas);
    request.getRequestDispatcher("index.jsp").forward(request, response);

}

这是方法类:

    public static void moverUltElemento(ArrayList elem1, ArrayList elem2) {
//Copiar último Elemento de un ArrayList a otro.
        elem2.add(elem1.get(elem1.size() - 1));
        elem1.remove(elem1.size() - 1);
    }
    
    public static void moverUltPriElemento(ArrayList elem1, ArrayList elem2) {
        //Copiar último Elemento de un ArrayList a otro.
                elem2.add(0, elem1.get(elem1.size() - 1));
                elem1.remove(elem1.size() - 1);
            }

    public static void moverPriElemento(ArrayList elem1, ArrayList elem2) {
//mover primer elemento al array de abajo 
        elem1.add(0, elem2.get(0));
        elem2.remove(elem2.get(0));
    }
    

    // Borrar elemento
    public static void borrarElemento(ArrayList elem1, int index) {
        elem1.remove(elem1.get(index));
    }

    // Eliminar último elemento del ArrayList
    public static void borrarUltElemento(ArrayList elem1) {
        elem1.remove(elem1.size() - 1);
        System.out.println("ArrayList sin el último elemento: " + elem1);
    }

    // Eliminar primer elemento del ArrayList
    public static void borrarPriElemento(ArrayList elem1) {
        elem1.remove(0);
        System.out.println(elem1);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////

这就是 JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Ejercicio Arreglos JSP</title>
</head>
<body>
    <%@page import="java.util.ArrayList"%>
    <%--Importing all the dependent classes--%>
    <%@page import="clase.ObjetosArreglo"%>
    <%@page import="java.util.Iterator"%>
    <!-- Arreglo Personas -->
    <%
        ArrayList<ObjetosArreglo> personasList = (ArrayList) request.getAttribute("ArrayPer");
    %>
    <%--Assigning ArrayList object containing Employee data to the local object --%>

    <strong> <a href="<%=request.getContextPath()%>/arrays">Mostrar
            Datos</a> <br> <a
        href="<%=request.getContextPath()%>/arrays?borrar=1">Borrar Datos</a>
    </strong>
    <form action="arrays" method="post">
        <input type="button" name="button1" value="Button 1" /> 
        <input type="submit" name="button2" value="Button 2" />
        <input type="submit" name="button3" value="Button 3" />
    </form>
    <br></br>
    <div style="text-align: center;">
        <table cellspacing="2" cellpadding="2">
            <tr>
                <%
                    // Iterating through subjectList
                    ArrayList<ObjetosArreglo> arre = (ArrayList) request.getAttribute("ArrayPer");
                    if (arre != null) // Null check for the object
                    {
                        for (ObjetosArreglo iter : arre) {
                %>
                <td><pre><%=iter.getNombre()%>             </pre></td>
                <%
                    }
                %>
            </tr>
            <%
                }
            %>
            <!-- Arreglo Mascotas -->
            <%
                ArrayList<ObjetosArreglo> mascotasList = (ArrayList) request.getAttribute("ArrayMasc");
            %>
            <%--Assigning ArrayList object containing Employee data to the local object --%>
            <tr>
                <%
                    // Iterating through subjectList
                    ArrayList<ObjetosArreglo> arre1 = (ArrayList) request.getAttribute("ArrayMasc");
                    if (arre1 != null) // Null check for the object
                    {
                        for (ObjetosArreglo iter : arre1) {
                %>
                <td><pre><%=iter.getNombre()%>             </pre></td>
                <%
                    }
                %>
            </tr>
            <%
                }
            %>
            <!-- Arreglo Mascotas -->
            <%
                ArrayList<ObjetosArreglo> comidasList = (ArrayList) request.getAttribute("ArrayCom");
            %>
            <%--Assigning ArrayList object containing Employee data to the local object --%>
            <tr>
                <%
                    // Iterating through subjectList
                    ArrayList<ObjetosArreglo> arre2 = (ArrayList) request.getAttribute("ArrayCom");
                    if (arre2 != null) // Null check for the object
                    {
                        for (ObjetosArreglo iter : arre2) {
                %>
                <td><pre><%=iter.getNombre()%>             </pre></td>
                <%
                    }
                %>
            </tr>
            <%
                }
            %>
        </table>
    </div>
</body>
</html>

【问题讨论】:

    标签: java jsp arraylist


    【解决方案1】:

    收到请求后,您可以尝试使用 cookie 并将数组的值保存在其中 - 只要会话持续,您就可以使用它们,所以基本上直到您关闭程序为止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-29
      • 2013-04-27
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2012-09-06
      • 2012-11-14
      相关资源
      最近更新 更多