Я пытаюсь создать логин в Java, SpringBoot и HTML (thymeleaf), но использую хэш-карту для хранения имени пользователя и пароля вместо SQL или встроенной поддержки. У меня проблемы с этим, потому что он печатает хеш-карту на веб-сайте (я также пытаюсь показать эти 2 значения на веб-сайте), но он делает это пустым, как это: "{}" Вот что я сделал:
Сеттеры и геттеры:
import java.util.HashMap;
import java.util.Map;
public class Greeting {
// id = username. content = password.
private String id;
private String content;
public Map<String, String> userAndPassword = new HashMap<>();
public void setId(String id) {
// username
this.id = id;
}
public String getId() {
return id;
}
public void setContent(String content) {
this.content = content;
}
public String getContent() {
return content;
}
public void setuserAndPassword(Map<String,String> userAndPassword) {
this.userAndPassword = userAndPassword;
// adding username and password into the hashmap
userAndPassword.put(id, content);
}
public Map<String, String> getuserAndPassword() {
return userAndPassword;
}
}
Вид (result.html):
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Web Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Datos</h1>
<p th:text="'User ID: ' + ${greeting.id}" />
<p th:text="'Password: ' + ${greeting.content}" />
<p th:text="'Printing out hashmap with all data: ' + ${greeting.userAndPassword}" />
</body>
</html>
Контроллер:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greetingForm(Model model) {
model.addAttribute("greeting", new Greeting());
return "greeting";
}
@PostMapping("/greeting")
public String greetingSubmit(@ModelAttribute Greeting greeting) {
return "result";
}
}