JSTL的对应问题

JSTL和POJO的对应问题

JSTL和POJO类的变量,应该是一一对应的,具体演示如下:

public class Employee {

    private int empId;

    private String empName;

    private String gender;

    private String email;

    private BigDecimal salary;

    private String jobTitle;
    }
    <tr>
      <td>${emp.empId}</td>
      <td>${emp.empName }</td>
      <td>${emp.gender }</td>
      <td>${emp.email }</td>
      <td>${emp.salary }</td>
      <td>${emp.jobTitle }</td>
      <td>Edit</td>
      <td>Delete</td>
    </tr>

可是今天在使用JSTL时候,居然无法显示对应表格,报错内容为:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/emp/list.jsp at line 35

32:             </tr>
33:         <c:forEach items="${emps }" var="emp">
34:             <tr>
35:               <td>${emp.empId}</td>
36:               <td>${emp.empName }</td>
37:               <td>${emp.gender }</td>
38:               <td>${emp.email }</td>

而将empId改为id却显示正常。本着坚持不懈的编程精神,终于查处了问题所在。

先前的POJO对应的代码为:

    private int empId;

    public int getId() {
        return empId;
    }

    public void setId(int id) {
        this.empId = id;
    }

可以发现,setId里的传参为“id”。这个是之前自己手动写的时候出现的疏漏,因此JSTL没有找到名为empId的变量,才会报错。而改为“id”后,便可以正常显示。
因此写一篇这样的博客,希望遇到同样问题的人可以有查找问题的思路和方向,并且最好使用自带的get、set方法生成器,尽量避免手动输入而造成的失误。

猜你喜欢

转载自blog.csdn.net/u012261499/article/details/80161378