Java ForEach循环和PropertyNotFoundExceptions中的JSP错误

Java ForEach循环和PropertyNotFoundExceptions中的JSP错误,java,eclipse,jsp,foreach,propertynotfoundexception,Java,Eclipse,Jsp,Foreach,Propertynotfoundexception,我是java新手,我正在使用EclipseIDE。我正在做一个项目,管理员正在向系统中添加员工。我需要通过从数据库检索数据来显示员工列表,并在单独的表(单独的jsp页面)中查看。即使数据被添加到数据库中,我也无法检索它。我在jsp页面中使用了for-each循环。调用视图页jspPropertyNotFoundException时 模型类 public class Person { private String Nic; private String Name; pri

我是java新手,我正在使用EclipseIDE。我正在做一个项目,管理员正在向系统中添加员工。我需要通过从数据库检索数据来显示员工列表,并在单独的表(单独的jsp页面)中查看。即使数据被添加到数据库中,我也无法检索它。我在jsp页面中使用了for-each循环。调用视图页jspPropertyNotFoundException时

模型类

public class Person {

    private String Nic;
    private String Name;
    private String Email;
    private String Phone;
    private String Address;


   public Person(String Nic, String Name, String Email, String Phone, String Address) {

        this.Nic = Nic;
        this.Name = Name;
        this.Email = Email;
        this.Phone = Phone;
        this.Address = Address;
    }

    public void setNic(String Nic) {
        this.Nic = Nic;
    }

    public String getNic() {
        return Nic;
    }

jsp页面我想显示数据(EmployeeList.jsp)


${emp.Nic}
${emp.Name}
${emp.Email}
${emp.Phone}
${emp.Address}
${emp.yearsof experience}
${emp.Specialization}
${emp.Salary}
addemployeeservlet

@WebServlet("/addEmployeeServlet")
public class addEmployeeServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String Nic= request.getParameter("Nic");
        String Name= request.getParameter("Name");
        String Email= request.getParameter("Email");
        String Phone= request.getParameter("Phone");
        String Address= request.getParameter("Address");
        String YearsOfExperience= request.getParameter("YearsOfExperience");
        String Specialization = request.getParameter("Specialization");
        String Salary= request.getParameter("Salary");

        boolean isTrue;

        isTrue = EmployeeDBUtil.AddEmployee(Nic,Name,Email,Phone,Address,YearsOfExperience,Specialization,Salary);

        //if inserted to database
        if(isTrue == true) {

            List <Employee> employeeDetails = EmployeeDBUtil.viewAllEmployee();
            request.setAttribute("employeeDetails",employeeDetails);


            RequestDispatcher dis1 =request.getRequestDispatcher("EmployeeList.jsp");
            dis1.forward(request, response);

        }
        else {
            RequestDispatcher dis2 =request.getRequestDispatcher("Unsuccess.jsp");
            dis2.forward(request, response);

        }

    }

@WebServlet(“/addEmployeeServlet”)
公共类addEmployeeServlet扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
字符串Nic=request.getParameter(“Nic”);
字符串名称=request.getParameter(“名称”);
字符串Email=request.getParameter(“Email”);
字符串Phone=request.getParameter(“Phone”);
字符串地址=request.getParameter(“地址”);
字符串yearsofferience=request.getParameter(“yearsofferience”);
字符串专门化=request.getParameter(“专门化”);
字符串Salary=request.getParameter(“Salary”);
布尔isTrue;
isTrue=EmployeeDBUtil.AddEmployee(Nic、姓名、电子邮件、电话、地址、工作年限、专业、薪水);
//如果插入到数据库中
如果(isTrue==true){
List employeeDetails=EmployeeDBUtil.viewalleemployee();
setAttribute(“employeeDetails”,employeeDetails);
RequestDispatcher dis1=request.getRequestDispatcher(“EmployeeList.jsp”);
dis1.转发(请求、响应);
}
否则{
RequestDispatcher dis2=request.getRequestDispatcher(“Unsuccess.jsp”);
dis2.转发(请求、响应);
}
}
雇员福利

public class EmployeeDBUtil {

    private static Connection con= null;
    private static Statement stmt = null;
    private static ResultSet rs = null;
    private static boolean isSuccess;

    // data from the database
    public static List<Employee> viewAllEmployee()  {


          ArrayList <Employee> emp = new ArrayList<>();

            try {
                con = DBconnection.getConnection();
                stmt = con.createStatement(); 
                String sql = "Select * from employee";
                rs= stmt.executeQuery(sql);



                while(rs.next()) {
                    String Nic= rs.getString(1);
                    String Name = rs.getString(2);
                    String Email = rs.getString(3);
                    String Phone =rs.getString(4);
                    String Address =rs.getString(5);
                    String YearsOfExperience =rs.getString(6);
                    String Specialization =rs.getString(7);
                    String Salary =rs.getString(8);

                    Employee e = new Employee(Nic,Name,Email,Phone,Address,YearsOfExperience,Specialization,Salary);
                    emp.add(e);

                    System.out.println("im here");
                }
            }catch(Exception e){
                e.printStackTrace();
         }


         return emp;

       }
public class EmployeeDBUtil{
私有静态连接con=null;
私有静态语句stmt=null;
私有静态结果集rs=null;
私有静态布尔访问;
//来自数据库的数据
公共静态列表viewAllEmployee(){
ArrayList emp=新的ArrayList();
试一试{
con=DBconnection.getConnection();
stmt=con.createStatement();
String sql=“选择*来自员工”;
rs=stmt.executeQuery(sql);
while(rs.next()){
字符串Nic=rs.getString(1);
字符串名称=rs.getString(2);
String Email=rs.getString(3);
字符串Phone=rs.getString(4);
字符串地址=rs.getString(5);
String yearsof experience=rs.getString(6);
字符串专门化=rs.getString(7);
字符串Salary=rs.getString(8);
员工e=新员工(Nic、姓名、电子邮件、电话、地址、工作年限、专业、工资);
环境管理局增补(e);
System.out.println(“我在这里”);
}
}捕获(例外e){
e、 printStackTrace();
}
返回emp;
}
Web Xml文件

?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

<servlet>
 <servlet-name>AddEmployee</servlet-name>
 <servlet-class>com.carepoint.servlet.addEmployeeServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>AddEmployee</servlet-name>
  <url-pattern>/Add</url-pattern>
</servlet-mapping>

 </web-app> 




?xml version=“1.0”encoding=“UTF-8”>
附加雇员
com.carepoint.servlet.addEmployeeServlet
附加雇员
/加
当我向系统中添加员工时,它会转到EmployeeList.jsp页面,但它确实显示了表或列表。尽管Nic是个人模型。这是显示的错误

May 09, 2020 7:04:31 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet [jsp] threw exception
org.apache.jasper.el.JspPropertyNotFoundException: /EmployeeList.jsp(315,9) '${emp.Nic}' Property [Nic] not found on type [com.carepoint.model.Employee]
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:120)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fset_005f0(EmployeeList_jsp.java:659)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fforEach_005f0(EmployeeList_jsp.java:558)
    at org.apache.jsp.EmployeeList_jsp._jspService(EmployeeList_jsp.java:441)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.carepoint.servlet.addEmployeeServlet.doPost(addEmployeeServlet.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

May 09, 2020 7:04:31 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [AddEmployee] in context with path [/Care-Point-Service-Station] threw exception [An exception occurred processing [/EmployeeList.jsp] at line [315]

312:                   
313:                   <c:forEach var="emp" items="${employeeDetails}">
314:                                 
315:                                 <c:set var="Nic" value="${emp.Nic}"/>
316:                                 <c:set var="Name" value="${emp.Name}"/>
317:                                 <c:set var="Email" value="${emp.Email}"/>
318:                                 <c:set var="Phone" value="${emp.Phone}"/>


Stacktrace:] with root cause
org.apache.jasper.el.JspPropertyNotFoundException: /EmployeeList.jsp(315,9) '${emp.Nic}' Property [Nic] not found on type [com.carepoint.model.Employee]
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:120)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fset_005f0(EmployeeList_jsp.java:659)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fforEach_005f0(EmployeeList_jsp.java:558)
    at org.apache.jsp.EmployeeList_jsp._jspService(EmployeeList_jsp.java:441)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.carepoint.servlet.addEmployeeServlet.doPost(addEmployeeServlet.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
2020年5月9日晚上7:04:31 org.apache.catalina.core.ApplicationDispatcher调用
严重:Servlet[jsp]的Servlet.service()引发异常
org.apache.jasper.el.JspPropertyNotFoundException:/EmployeeList.jsp(315,9)${emp.Nic}属性[Nic]在类型[com.carepoint.model.Employee]上找不到
位于org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:120)
在org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fset_005f0(EmployeeList_jsp.java:659)
在org.apache.jsp.EmployeeList\u jsp.\u jspx\u meth\u c\u 005fforEach\u 005f0(EmployeeList\u jsp.java:558)
在org.apache.jsp.EmployeeList\u jsp.\u jsp服务上(EmployeeList\u jsp.java:441)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(应用程序
?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

<servlet>
 <servlet-name>AddEmployee</servlet-name>
 <servlet-class>com.carepoint.servlet.addEmployeeServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>AddEmployee</servlet-name>
  <url-pattern>/Add</url-pattern>
</servlet-mapping>

 </web-app> 




May 09, 2020 7:04:31 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet [jsp] threw exception
org.apache.jasper.el.JspPropertyNotFoundException: /EmployeeList.jsp(315,9) '${emp.Nic}' Property [Nic] not found on type [com.carepoint.model.Employee]
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:120)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fset_005f0(EmployeeList_jsp.java:659)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fforEach_005f0(EmployeeList_jsp.java:558)
    at org.apache.jsp.EmployeeList_jsp._jspService(EmployeeList_jsp.java:441)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.carepoint.servlet.addEmployeeServlet.doPost(addEmployeeServlet.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

May 09, 2020 7:04:31 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [AddEmployee] in context with path [/Care-Point-Service-Station] threw exception [An exception occurred processing [/EmployeeList.jsp] at line [315]

312:                   
313:                   <c:forEach var="emp" items="${employeeDetails}">
314:                                 
315:                                 <c:set var="Nic" value="${emp.Nic}"/>
316:                                 <c:set var="Name" value="${emp.Name}"/>
317:                                 <c:set var="Email" value="${emp.Email}"/>
318:                                 <c:set var="Phone" value="${emp.Phone}"/>


Stacktrace:] with root cause
org.apache.jasper.el.JspPropertyNotFoundException: /EmployeeList.jsp(315,9) '${emp.Nic}' Property [Nic] not found on type [com.carepoint.model.Employee]
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:120)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fset_005f0(EmployeeList_jsp.java:659)
    at org.apache.jsp.EmployeeList_jsp._jspx_meth_c_005fforEach_005f0(EmployeeList_jsp.java:558)
    at org.apache.jsp.EmployeeList_jsp._jspService(EmployeeList_jsp.java:441)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.carepoint.servlet.addEmployeeServlet.doPost(addEmployeeServlet.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
package beans;

public class Person {
    private String nic;
    private String name;
    private String email;
    private String phone;
    private String address;

    public Person(String nic, String name, String email, String phone, String address) {
        this.nic = nic;
        this.name = name;
        this.email = email;
        this.phone = phone;
        this.address = address;
    }
    public String getNic() {
        return nic;
    }
    public void setNic(String nic) {
        this.nic = nic;
    }
}
package beans;

public class Employee extends Person {
    private String yearsOfExperience;
    private String specialization;
    private String salary;

    public Employee(String nic, String name, String email, String phone, String address, String yearsOfExperience,
            String specialization, String salary) {
        super(nic, name, email, phone, address);
        this.yearsOfExperience = yearsOfExperience;
        this.specialization = specialization;
        this.salary = salary;
    }
}
package servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import beans.Employee;

@WebServlet("/addEmployeeServlet")
public class AddEmployeeServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Employee> employeeDetails = List.of(new Employee("123", null, null, null, null, null, null, null),
                new Employee("456", null, null, null, null, null, null, null));
        request.setAttribute("employeeDetails", employeeDetails);
        request.getRequestDispatcher("employees.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
}
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<table>
    <c:forEach var="emp" items="${employeeDetails}">
        <tr>
            <td>${emp.nic}</td>
        </tr>
    </c:forEach>
</table>