Коллекции не сохраняют добавляемые значения
Коллекции не сохраняют добавляемые значения В методе public String pageReg1(Model model,@ModelAttribute RequestFormPassword form) Есть коллекция emails которая хранит в себе значения эмайлов. Так в самом методе я добавил 2 эмайла прямо прописав их в ручную - вот они (emails.add("[email protected]"); emails.add("[email protected]");). И когда я печатаю коллекцию они с неё печатаются, но моя задача добавлять в эту коллекцию эмайлы, которые прилетают с сайта ( с формы ). Т.е. я захожу на свою страничку http://localhost:8080/reg, там есть поле email ввожу туда эмайл и кладу его в переменную String prov = form.getEmail(); и добавляю значение этой переменной в коллекцию emails в одном из условий, но значение каждый раз перезаписывается вместо того что бы сохранятся. Т.е. если я на своём локальном хосте ввожу эмайл [email protected] и потом сново введу другой эмайл, он его перезапишет на место [email protected], хотя по идее должен бы записать оба значения в коллекцию.
package com.example.NewsApp.model.reg;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import com.example.NewsApp.controller.WebController;
import com.example.NewsApp.dto.RequestFormPassword;
import com.example.NewsApp.model.User;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class pageReg {
private ConcurrentHashMap<String, User> users = new ConcurrentHashMap<>() {{
put("vasya", new User("vasya", "[email protected]", "v123"));
put("sasha", new User("sasha", "[email protected]", "s123"));
}};
private ArrayList<String> emails = new ArrayList<String>();
public String pageReg1(Model model,@ModelAttribute RequestFormPassword form) {
model.addAttribute("form", new RequestFormPassword());
String prov = form.getEmail();
emails.add("[email protected]");
emails.add("[email protected]");
emails.add(prov);
System.out.println("Печатаю мыло с формы + " + prov);
for (var elem : emails) {
System.out.println(elem);
}
if (users.containsKey(form.getLogin())) {
System.out.println("Такой Login уже зарегистрирован");
model.addAttribute("errorik", true);
return "registering";
} else if (emails.contains(prov)) {
model.addAttribute("errorik1", true);
System.out.println("Такой Email уже зарегистрирован");
return "registering";
} else {
users.put(form.getLogin(), new User(form.getLogin(), form.getEmail(), form.getPassword()));
emails.add(prov);
System.out.println("Пользователь успешно зарегистрирован");
model.addAttribute("sucsesful", true);
for (var elem : emails) {
System.out.println(elem);
}
return "signIn";
}
}
public String pageSignIn(Model model, @ModelAttribute RequestFormPassword form) {
if (!users.containsKey(form.getLogin())) {
model.addAttribute("error", true);
model.addAttribute("form", new RequestFormPassword());
System.out.println("Блок 1");
System.out.println(form.getLogin());
return "signIn";
} else if (!users.get(form.getLogin()).getPassword().equals(form.getPassword())) {
model.addAttribute("error", true);
model.addAttribute("form", new RequestFormPassword());
System.out.println("Блок 2");
return "signIn";
} else {
model.addAttribute("user", users.get(form.getLogin()));
model.addAttribute("form", new RequestFormPassword());
System.out.println("Блок 3");
return "signIn";
}
}
} **
Ответы (1 шт):
Вы на каждый запрос создаете новый объект pageReg, который ничего не знает об e-mail-ах, добавленных в коллекцию в предыдущие разы.