我正在尝试制作一个登录和注册页面,但问题是同一页面上的两个表单返回以下错误:
HTML表单代码
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Material Login Form</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
href="../static/css/reset.css"/>
<link rel='stylesheet prefetch'
href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'/>
<link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'/>
<!--<link rel="stylesheet" href="../static/css/style.css"/>-->
<link rel="stylesheet" th:href="@{/css/style.css}"
href="../static/css/style.css"/>
</head>
<body>
<!-- Mixins-->
<!-- Pen Title-->
<div class="container">
<div class="card"></div>
<div class="card">
<h1 class="title">Login</h1>
<form action="login" th:action="@{/register}" th:object="${login}" method="post" >
<div class="input-container">
<input type="text" id="email" th:field="*{email}" required="required"/>
<label for="email">email</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="password" id="Password" th:field="*{password}" required="required"/>
<label for="Password">Password</label>
<div class="bar"></div>
</div>
<div class="button-container">
<button ><span>Go</span></button>
</div>
<div class="footer"><a href="#">Forgot your password?</a></div>
</form>
</div>
<div class="card alt">
<div class="toggle"></div>
<h1 class="title">Register
<div class="close"></div>
</h1>
<form action="register" th:action="@{/register}" th:object="${register}" method="post">
<div class="input-container">
<input type="text" id="firstName" th:field="*{firstName}" required="required"/>
<label for="firstName">First Name</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="text" id="lastName" th:field="*{lastName}" required="required"/>
<label for="lastName">Last Name</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="text" id="email_" th:field="*{email}" required="required"/>
<label for="email">Email</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="password" id="Password_" th:field="*{password}" required="required"/>
<label for="Password">Password</label>
<div class="bar"></div>
</div>
<div class="button-container">
<button><span>Next</span></button>
</div>
</form>
</div>
</div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script th:src="@{/js/index.js}"></script>
</body>
</html>
控制器代码:
@Controller
public class UserController {
private UserServices userServices;
@Autowired
private UserRepository repository;
@Autowired
public UserController(UserServices userServices) {
this.userServices=userServices;
}
// Retrive Registration form
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String getRegisterForm(Model model) {
model.addAttribute("register", new User());
return "index";
}
//Submitting registration form and adding user
@RequestMapping(value = "/register", method = RequestMethod.POST,params = "action=register")
public String registerSubmit(@ModelAttribute User user, Model model) {
model.addAttribute("register", user);
if (repository.findByEmail(user.getEmail()) == null) {
userServices.creat(user);
} else {
return "index";
}
return "index";
}
//retrive login form
@RequestMapping(value = "/login",method = RequestMethod.GET)
public String getLoginForm(Model model){
model.addAttribute("login" , new User());
return "index";
}
}
您的错误消息显示BindingResult和bean名称'register'的普通目标对象都不能作为请求属性
使用。如果查看getLogInform
方法,您只填充了模型中的“login”对象,而不是“register”对象。如果您希望在一个页面上有两个表单,我认为您需要一个method=requestMethod.get
方法来填充这两个表单的默认值。无论何时显示此页面,都需要确保填充了两个表单备份对象。
我想问一下我如何才能在一个页面中使用相同的提交2个html表单。我希望对这两个表单都有相同的操作,从而使用相同的servlet来处理Reuqest。
当我试图从我的thymeleaf html表单中保存一个Date输入到控制器时,我收到一条错误消息。它似乎是作为字符串从表单中发送的,但我希望它作为Date发送。我设置了输入类型=date,所以我不确定它为什么出错。这是错误: 下面是该部分的html代码,expirationDate是我发送回控制器的卡对象的一个属性: 这是控制器。获取日期值并在表单中预先填写可以很好地工作,但由于某种原因,当我提
问题内容: 我想将注册和登录表格都放在同一页面上。 它们都以: 所以,我需要这样的东西: 还有如何在第二个表格繁忙时防止执行第一个表格,反之亦然(用户单击两者) 我的想法是在启动流程时(例如,在流程结束时)创建一个简单变量,因此: 可能有更好的方法。 问题答案: 您可以通过两种不同的动作制作两种形式 还是这样做 然后,您的PHP文件将用作一个switch($ _ POST [‘action’])…
问题内容: 我有两个表,它们的定义如下: 和这里代表。 我做了一个简单的本地SQL只能加入到选择和为: 但是我在行上遇到异常: 堆栈跟踪 : 您能建议出什么事了吗? 问题答案: 您需要设置结果别名。
问题内容: 我有两个表,它们的定义如下: 和这里代表。 我做了一个简单的本地SQL只能加入到选择和为: 但是我在行上遇到异常: 堆栈跟踪 : 你能建议出什么事了吗? 问题答案: 您需要设置结果别名。
我试图以此作为SpringBoot中静态内容的参考 我正在尝试设置隐藏输入字段中的值。但这给了我错误 org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.thymeleaf.exceptions.TemplateInputException:异常解析文档:template=“apppage”,第9行-第33列 我正