spring-boot - 在类型 [java.lang.String] 上找不到属性 [id]
问题描述
当我使用控制器在 studentbyid.jsp 页面上显示数据时,抛出一个错误 -> 出现意外错误(类型 = 内部服务器错误,状态 = 500)。在类型 [java.lang.String] 上找不到属性 [id]
@Controller
public class StudentController {
@Autowired
private StudentService studentService ;
@GetMapping(value = "/students")
public String index(ModelMap modelMap){
modelMap.put("students" , studentService.findAll());
System.out.println(" Student for id =" + studentService.findAll());
return "index" ;
}
@GetMapping(value = "/studentid")
public String studentdetailed(@RequestParam("id") int id , ModelMap modelMap){
modelMap.put("students" , studentService.findById(id));
System.out.println(" Student for id =" + studentService.findById(id));
return "studentbyid" ;
}
@GetMapping(value = "/student")
public String databyid(){
return "student" ;
}
}
public interface StudentService {
public Iterable<Student> findAll() ;
public Optional<Student> findById(int id) ;
}
@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);
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Student Data</title>
</head>
<body>
<c:forEach var="student" items="students">
<c:out value="${student.id}"/>
<c:out value="${student.firstName}"/>
<c:out value="${student.lastName}"/>
<c:out value="${student.branch}"/>
<c:out value="${student.year}"/>
<c:out value="${student.mobileNumber}"/>
</c:forEach>
</body>
</html>
@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 + '\'' +
'}';
}
}
Whitelabel 错误页面 此应用程序没有针对 /error 的显式映射,因此您将其视为后备。
出现意外错误(类型=内部服务器错误,状态=500)。在类型 [java.lang.String] 上找不到属性 [id]
解决方案
我想,可能是你的jsp中不正确的jstl表达式
尝试替换这个
<c:forEach var="student" items="students">
到这个
<c:forEach var="student" items="${students}">
推荐阅读
- r - 与 numbers 和 tapply 一起使用时如何解决由"引起的错误?R,包安排
- c++ - c++ pointer and variable address switch of value, why?
- matlab - 如何在 Matlab 中对信号进行下采样
- python - 在逻辑回归中,如何在 python 中为我的虚拟变量设置“参考水平”
- c# - 是否可以在 Outlook 中以编程方式更改电子邮件预览?
- javascript - 为什么“this”在通过逻辑运算符调用的函数中未定义?
- batch-file - Windows Batch Script: why is the syntax of this IF command incorrect?
- javascript - Centering and scaling canvas object inside another canvas object by width/height in Fabric.js
- android - React Native flex 视图在设备旋转后不会缩小
- excel - Excel - 删除行不会自动插入空白行