Я новичок в разработке веб-приложений и хочу создать страницу входа для своего веб-приложения (используя Spring boot + Thymeleaf), но не могу отобразить form.html
, когда делаю запрос на /form
.
Это мой Entity
класс:
package com.example.springboot.model;
public class ApplicationUser {
private String username;
private String password;
public ApplicationUser(String username, String password) {
this.username = username;
this.password = password;
}
public ApplicationUser() { }
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Мой form.html
выглядит так:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Form Submission</title>
</head>
<body>
<h1>User form</h1>
<form action="#" th:action="@{/form}" th:object="${applicationuser}" method="post">
<p>Username: <input type="text" th:field="*{username}"/></p>
<p>Password: <input type="text" th:field="*{password}"/></p>
<p><input type="submit" value="Send"/></p>
</form>
</body>
</html>
А result.html
это
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Result</title>
</head>
<body>
<h1>Result</h1>
<p th:text="'username: ' + ${applicationuser.username}"/>
<p th:text="'password: ' + ${applicationuser.password}"/>
<a href="/form">Submit another</a>
</body>
</html>
Но applicationuser
из th:object="${applicationuser}"
выделен красным цветом ("не удается разрешить" applicationuser "). Может ли это быть проблемой? Как ее решить?
Мой Controller
класс
@RestController
public class Test {
@RequestMapping(value = "/form",method = RequestMethod.GET)
public String userForm(Model model){
model.addAttribute("applicationuser",new ApplicationUser());
return "form";
}
@RequestMapping(value = "/form",method = RequestMethod.POST)
public String userSubmit(@ModelAttribute ApplicationUser user,Model model){
model.addAttribute("applicationuser",user);
String info = String.format("User Submission: username = %s, password = %s", user.getUsername(),user.getPassword());
System.out.println(info);
return "result";
}
}
Я просто пытаюсь получить форму ввода и отобразить ее в консоли, но никак ... Когда я делаю запрос в своем браузере: http://localhost:8080/form Я получаю белую страницу со следующей строкой"form", он не отображает текстовые поля и кнопку. У меня в pom.xml есть зависимость thymeleaf:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Кто-нибудь знает, в чем проблема с моим кодом?