我正在学习Spring Boot,并试图实现身份验证。我有一个注册页面,它使用POST方法发送新用户数据以存储在内存数据库中。奇怪的是,当我提交表单时,GET方法是唯一被调用的方法。这是我的超文本标记语言文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Signup</title>
</head>
<body>
<div class="container justify-content-center w-25 p-3" style="background-color: #eeeeee; margin-top: 5em;">
<div class="form-group">
<label><a th:href="@{/login}">Back to Login</a></label>
</div>
<h1 class="display-5">Sign Up</h1>
<form action="#" th:action="@{/signup}" methond="POST">
<div id="success-msg" th:if="${signupSuccess}">
You successfully signed up! Please continue to the <a id="login-ling" th:href="@{/login}">login</a> page.
</div>
<div if="error-msg" th:if="${signupError}">
<span th:text="${signupError}"></span>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputFirstName">First Name</label>
<input type="input" name="firstName" class="form-control" id="inputFirstName" placeholder="Enter First Name" maxlength="20" required>
</div>
<div class="form-group col-md-6">
<label for="inputLastName">Last Name</label>
<input type="input" name="lastName" class="form-control" id="inputLastName" placeholder="Enter Last Name" maxlength="20" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputUsername">Username</label>
<input type="input" name="username" class="form-control" id="inputUsername" placeholder="Enter Username" maxlength="20" required>
</div>
<div class="form-group col-md-6">
<label for="inputPassword">Password</label>
<input type="password" name="password" class="form-control" id="inputPassword" placeholder="Enter Password" maxlength="20" required>
</div>
</div>
<button id="submit-button" type="submit" class="btn btn-primary">Sign Up</button>
</form>
</div>
</body>
</html>
如您所见,表单上有< code>method="POST"属性。
这是我的注册控制器:
import com.udacity.mvc.Basics.models.User;
import com.udacity.mvc.Basics.services.UserService;
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;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller()
@RequestMapping("/signup")
public class SignupController {
private final UserService userService;
public SignupController(UserService userService) {
this.userService = userService;
}
@GetMapping()
public String signupView() {
System.out.println("Get");
return "signup";
}
@PostMapping()
public String signupUser(@ModelAttribute User user, Model model) {
String signupError = null;
System.out.println("Post");
if (!userService.usUsernameAvailable(user.getUsername())) {
signupError = "The username already exist.";
}
if (signupError == null) {
int rowsAdded = userService.createUser(user);
if(rowsAdded < 0) {
signupError = "There was an error signing you up. Please try again";
}
}
if (signupError == null) {
model.addAttribute("signupSuccess", true);
} else {
model.addAttribute("signupError", signupError);
}
return"signup";
}
}
我已经将System.out.println("GET")
放在@GetMap()方法中,即使我点击注册表单上的提交按钮,也可以在我的服务器上看到该方法被调用。有人知道为什么会发生这种情况吗?
在html文件中,“方法”关键字中存在拼写错误将该行替换为:
删除action=“#”,然后它将起作用
我想把@AutoWired注释变成一个“方面”。我想在我的方面中注入一个存储库,但是当我试图调用autowired类的方法时,出现了NullPointException。 我已经尝试在aspect类上添加,但我出现了同样的错误。 如果我不使用aspect类,而是使用,我可以毫无问题地调用存储库。 一些文档谈到了spring的xml文件配置,但在spring boot,我没有这些文件。 这里是pom
看起来在这个话题上有一些问题,但许多问题现在已经过时,或者问的是不同的问题。 例如,我想做 我不想在 我有一个方法签名,它同时接受请求参数和请求主体(它是Kotlin,但我不认为这实际上有什么不同)。 我可以很好地访问RequestParam,但是RequestBody包含的不仅仅是我在body中发送的JSON,它包含了body和请求参数的合并。在上面的示例中,它将为body绑定输出以下内容 有没
我尝试将Spring Boot与HikariDataSource配合使用,但出现了错误。断管怎么配置比较好还是用c3p0比较好?我正在使用这个配置 我使用: 和 springboot 版本 1.4.2.RELEASE
尝试使用springboot MVC和Thymeleaf访问POST方法中的多个对象。 这是控制器。 下面是这些观点: patient.html 和result.html 和bean类是:PatientDataModel.java 另一个bean: 现在,问题是,我需要这两个bean在GET和POST方法中都可以访问。当我运行代码时,它正在执行,但是bean没有值,所有值都是空的。请建议
本文向大家介绍SpringBoot AOP使用笔记,包括了SpringBoot AOP使用笔记的使用技巧和注意事项,需要的朋友参考一下 1. 启用AOP a. 在类上添加@Aspect注解 b. 注入该类, 可以使用@Component进行注入到Spring容器中 2. 通过PointCut对象创建切入点 a. 在某个方法使用类似下面的方法进行注入 i. 其中,execution表达式为 exec
似乎没有使用Hikaricp。 例如,Spring。数据源。始终影响最大池大小。Spring数据源。希卡里。最大池大小不受影响。 我设定如下: 然后我通过netstat命令检查连接数。有10个连接。似乎hikari的最大池大小不起作用。即使我删除了spring.datasource.maximum池大小,hikari的最大池大小仍然不起作用。 此外,我设置了以下日志事件,但没有关于HikariCP
我试图设置本地DynamoDB实例与SpringBoot。我跟着这个,但是格拉德尔。 当我尝试运行我的应用程序时,会出现以下异常: 我知道这是由于歧义导致的依赖注入失败,但我的是一个无参数构造函数。不确定歧义在哪里。 以下是我的代码: 格雷德尔锉刀 发电机配置 代理(实体) @DynamoDBTable(tableName="Agent")公共类Agent{私有字符串代理号;私有整数id;私有企业