已解决[org.springframework.web.HttpMediaTypeNotSupportedException:Content-Type 'application/x-www-form-urlencoded; charset=UTF-8'不受支持]
我得到这个错误,当我试图连接我的Spring Boot 应用程序与html文件
实体类
package com.signup.page.signup.model;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@Entity
public class signUp {
@Id
private String email;
private String firstName;
private String lastName;
private String password;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public signUp(String firstName, String lastName, String email, String password) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
}
public signUp() {
super();
}
}
仓库类
package com.signup.page.signup.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.signup.page.signup.model.signUp;
@Repository
public interface modelRepository extends JpaRepository<signUp, String> {
}
服务等级
package com.signup.page.signup.service;
import org.springframework.stereotype.Service;
import com.signup.page.signup.model.signUp;
import com.signup.page.signup.repository.modelRepository;
@Service
public class modelService {
private final modelRepository ModelRepository;
public modelService(modelRepository ModelRepository) {
//super();
this.ModelRepository = ModelRepository;
}
public signUp registerUser(signUp SignUp) {
return ModelRepository.save(SignUp);
}
}
控制器类
package com.signup.page.signup.controller;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.signup.page.signup.model.signUp;
import com.signup.page.signup.service.modelService;
@RestController
@RequestMapping("/signup")
public class modelController {
private final modelService ModelService;
public modelController(modelService ModelService) {
//super();
this.ModelService = ModelService;
}
@PostMapping(value="/register", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public ResponseEntity<signUp> registerUser(@RequestBody signUp SignUp){
signUp registeredUser = ModelService.registerUser(SignUp);
return ResponseEntity.ok(registeredUser);
}
}
HTML文件
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>SignUp</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<script src='main.js'></script>
</head>
<body>
<form method="post" action="/signup/register" enctype="application/x-www-form-urlencoded">>
<div class="signuppage">
<label for = "firstName"><b>First Name</b></label>
<input type="text" placeholder="Enter First Name" name="firstName" required><br>
<label for = "lastName"><b>Last Name</b></label>
<input type="text" placeholder="Enter Last Name" name="lastName" required><br>
<label for = "email"><b>Email</b></label>
<input type="text" placeholder="Enter email" name="email" required><br>
<label for = "password"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" required><br>
<button type = "submit">Sign Up</button>
</div>
</form>
</body>
</html>
when i submit the form i am getting[36m.w.s.m.s.DefaultHandlerExceptionResolver[0;39m [2m:[0;39m Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported]
此错误
我该怎么解决这个问题
1条答案
按热度按时间xv8emn3q1#
Spring在使用application/x-www-form-urlencoded时无法识别它是一个RequestBody。
尝试删除@RequestBody注解。