Spring thymeleaf在发布请求时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring thymeleaf在发布请求时出错相关的知识,希望对你有一定的参考价值。
我有这个简单的代码:这是我的控制器类,我重定向到一个页面
@Controller
public class SimpleController {
@GetMapping("/nuovo-utente")
public String viewInserisciUtente(Model model){
model.addAttribute("nuovoUtente", new Utente());
return "nuovo-utente";
}
@PostMapping("/nuovo-utente")
public void memorizzaUtente(@ModelAttribute Utente utente){
System.out.println(utente.getId());
}
}
这是模型类。
public class Utente {
private String id=null;
private String citta=null;
private String genere=null;
private String data_nascita=null;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCitta() {
return citta;
}
public void setCitta(String citta) {
this.citta = citta;
}
public String getGenere() {
return genere;
}
public void setGenere(String genere) {
this.genere = genere;
}
public String getData_nascita() {
return data_nascita;
}
public void setData_nascita(String data_nascita) {
this.data_nascita = data_nascita;
}
}
和mymeleaf的html页面如下:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Inserisci un nuovo utente</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Form</h1>
<form action="#" th:action="@{/nuovo-utente}" th:object="${nuovoUtente}" method="post">
<p>Id: <input type="text" th:field="*{id}" /></p>
<p>Città: <input type="text" th:field="*{citta}" /></p>
<p>Genere: <input type="text" th:field="*{genere}" /></p>
<p>Data nascita: <input type="text" th:field="*{data_nascita}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>
</body>
</html>
所以,正如我在标题中所说,当我尝试通过邮寄请求提交表单时,表单的这个简单代码会给我错误。错误如上:
Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor' (template: "nuovo-utente" - line 10, col 32)
你能对我说什么?一些帮助将是欣赏
答案
你必须使用不同的HTML和URL。一个用于创建表单,另一个用于提交表单。您正在使用相同的网址。
另一答案
首先在你的html页面改变
<html xmlns:th="http://www.thymeleaf.org">
至
<html xmlns:th="http://www.w3.org/1999/xhtml">
并编写你的控制器类
@PostMapping("/nuovo-utente")
public String memorizzaUtente(@ModelAttribute("nuovoUtente") Utente utente) {
System.out.println(utente.getId());
return "any page";
}
}
以上是关于Spring thymeleaf在发布请求时出错的主要内容,如果未能解决你的问题,请参考以下文章
模板解析时出错。Spring boot 和 Thymeleaf
在 Spring Boot App 中运行 jar 文件但在本地运行良好时解析 Thymeleaf 模板文件时出错
将分页与 Spring Boot 和 Thymeleaf 一起使用时出错