Есть класс Person с параметрами: name, age, email, а также getter и setter. После чего я создал класс PersonStorage - который имеет два метода:
private static List<Person> personList = new ArrayList<Person>();
public void addPerson(Person person){
personList.add(person);
}
public List<Person> getAllPerson(){
return this.personList;
}
HttpServlet - который получает параметры name, age, email и создает объект Person и добавляет его в list:
@WebServlet(urlPatterns = {"/addclientform.jsp"})
public class AddClientServlet extends HttpServlet {
private PersonStorage personList = new PersonStorage();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
int age = Integer.parseInt(req.getParameter("age"));
String email = req.getParameter("email");
Person person = new Person(name, age, email);
personList.addPerson(person);
req.getRequestDispatcher("printmessage.jsp").forward(req,resp);
}
}
Вот jsp форма:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add Client Form</title>
</head>
<body>
<font size="5">Add Client Form</font><br/>
<br/>
<form action="printmessage.jsp" method="post">
Name: <input type="text" name="name"/><br/>
Age: <input type="text" size="1" name="age"/><br/>
Email: <input type="text" name="email"/><br/>
<br/>
<input type="submit" value="Add Client"/>
</form>
<form name="return" action="home" method='post'>
<input type='submit' value='Return Home'/>
</form>
</body>
</html>
Так же создан еще один HttpServlet который уже должен выводить list уже созданных пользователей:
@WebServlet(urlPatterns = {"/clientList"})
public class SeeClient extends HttpServlet {
PersonStorage personStorage = new PersonStorage();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("list", personStorage.getAllPerson());
req.getRequestDispatcher("clientList.jsp").forward(req,resp);
}
}
И последний jsp который пробегает и выводит list:
<%@ page session="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Clien Page</title>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>Email</th>
</tr>
<c:forEach items="${list}" var="personlist">
<tr>
<td>${personlist.name}</td>
<td>${personlist.age}</td>
<td>${personlist.email}</td>
</tr>
</c:forEach>
</table>
<form name="home" action="home.jsp" method="post">
<input type="submit" value="back">
</form>
</body>
Но когда я пытаюсь добавить пользователя, то список пуст! Подскажите пожалуйста, как это исправить?
У вас private PersonStorage personList = new PersonStorage();
в разных классах это разные объекты - поэтому вы добавляете в один PersonStorage
, а получить результаты пробуете в другом PersonStorage
.
Мы можете ваш мемори сторидж сделать синглтоном например или использовать фреймворки типа Spring.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
День! Есть планшет на android с установленным на нём приложением обратной связиСуть такая - лежит такой планшет на кассе в магазине и каждый желающий...