Spring boot 无法转换类型为';java.lang.String';至所需类型';int';;
将id值传递给控制器时会出现错误“未能将“java.lang.String”类型的值转换为所需的“int”类型” 但当我打印System.out.println(studentService.findById(id))时,它在终端中给出一个输出,如下所示 可选[学生{id=1,firstName='Abhishek',lastName='Shukla',branch='CS',year=4,mobileNumber='9876543210'] 我已经尝试将id作为字符串传递,并通过在控制器中使用Integr.parseInt(id)将字符串转换为int,但它在 路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为java.lang.NumberFormatException:对于输入字符串:“{id}”],具有根本原因” 白标错误页 此应用程序没有/error的显式映射,因此您将其视为回退 出现意外错误(类型=错误请求,状态=400)。Spring boot 无法转换类型为';java.lang.String';至所需类型';int';;,spring-boot,spring-mvc,jsp,Spring Boot,Spring Mvc,Jsp,将id值传递给控制器时会出现错误“未能将“java.lang.String”类型的值转换为所需的“int”类型” 但当我打印System.out.println(studentService.findById(id))时,它在终端中给出一个输出,如下所示 可选[学生{id=1,firstName='Abhishek',lastName='Shukla',branch='CS',year=4,mobileNumber='9876543210'] 我已经尝试将id作为字符串传递,并通过在控制器中使用
未能将“java.lang.String”类型的值转换为所需的类型“int”;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“{id}”表单的操作是
action="/student/{id}"
因此,正如错误消息所示,您实际上是在向/student/{id}
发送请求,而不是,比方说,/student/1234
显然,表单有一个输入字段,用户必须在其中输入ID,因此ID将作为请求参数发送,而不是作为路径变量发送,因此控制器方法和操作的路径应该是
/students
它应该将ID作为请求参数:
@GetMapping(value = "/student")
public String data(@RequestParam("id") int id, ModelMap modelMap)
请检查属性文件,并确保在指定属性后未使用分号(;)如何将jsp表单中的值传递为@PathVariable在您的情况下,您需要使用JavaScript。
@Transactional
@Service("studentService")
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentRepository studentRepository ;
@Override
public Iterable<Student> findAll() {
return studentRepository.findAll();
}
public Optional<Student> findById(int id) {
return studentRepository.findById(id);
}
}
@Entity
@Table(name = "student")
public class Student {
@Id
@Column(name="id")
private int id ;
@Column(name="first_name")
private String firstName ;
@Column(name="last_name")
private String lastName ;
@Column(name="branch")
private String branch ;
@Column(name="year")
private int year ;
@Column(name="mobile_number")
private String mobileNumber ;
public Student() {
}
public Student(int id, String firstName, String lastName, String branch, int year, String mobileNumber) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.branch = branch;
this.year = year;
this.mobileNumber = mobileNumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 getBranch() {
return branch;
}
public void setBranch(String branch) {
this.branch = branch;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", branch='" + branch + '\'' +
", year=" + year +
", mobileNumber='" + mobileNumber + '\'' +
'}';
}
}
action="/student/{id}"
/students
@GetMapping(value = "/student")
public String data(@RequestParam("id") int id, ModelMap modelMap)