[英]Send an arrayList from a jsp to a servlet
該項目的目的是從 arrayLists 中移動對象,並擦除它們。 我在 servlet 上創建了三個數組列表,這些 arrayList 是我想要使用的,我已經知道如何在 JSP 頁面中顯示它們,以及如何移動和擦除它們,但我的問題是我希望能夠檢索 arrayList 對象的當前 state 因為我想要做的元素以及移動和擦除是通過我創建的一些按鈕。 因此,我嘗試在引用 jsp servlet 的表單中創建按鈕,但是當我按下按鈕時沒有顯示任何內容,我使用了 System.out.println() 能夠從JSP,但我什么也沒得到。
這是小服務程序:
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);
}
這是方法 class:
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>
根據要求,您可以嘗試使用 cookies 並將數組的值保存在其中 - 只要 session 持續存在,它們就會為您提供,所以基本上直到您關閉程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.