如何在从 servlet 检索的 JSP 数据中显示数组数组。尝试从 JSP 访问时,记录不显示任何内容

Posted

技术标签:

【中文标题】如何在从 servlet 检索的 JSP 数据中显示数组数组。尝试从 JSP 访问时,记录不显示任何内容【英文标题】:How to display array of arrays in JSP data retrieved from servlet . The record displays nothing while trying to access from JSP 【发布时间】:2022-01-04 04:21:29 【问题描述】:

想要在 JSP 页面中显示以下数据模式。 record.id 显示没有任何人可以帮助解决此问题。数据是从 servlet 的 mysql 数据库中获取并传递给 JSP。

JSP 代码

<table>
    <tr>
        <c:forEach var="record" items="$STUDENT_LIST">  
          <td>$record.id</td>
          <td>$record.sfirstName</td>
          <td>$record.sgender</td>
       </c:forEach>
   </tr>
</table>

数据格式

[getStudentDetails[id=1, sfirstName=Tom,  sgender=M],
[getStudentDetails[id=2,sfirstName=jerry,  sgender=M],
[getStudentDetails[id=3, sfirstName=scooby, sgender=M]]

Servlet 代码

学生 = studentDetailsDB.getStudents();

     request.setAttribute("STUDENT_LIST", students);
         
    request.getRequestDispatcher("studentDetailsView.jsp").forward(request, response);

学生班 公共类 getStudentDetails

private int    id;
private String sfirstName;
private String sgender;


public getStudentDetails(int id, String sfirstName, String sgender) 
    this.id = id;
    this.sfirstName = sfirstName;
    this.sgender = sgender;


public int getId() 
    return id;


public void setId(int id) 
    this.id = id;


public String getSfirstName() 
    return sfirstName;


public void setSfirstName(String sfirstName) 
    this.sfirstName = sfirstName;



public String getSgender() 
    return sgender;


public void setSgender(String sgender) 
    this.sgender = sgender;



@Override
public String toString() 
    return "getStudentDetails[" + "id=" + id + ", sfirstName=" + sfirstName + ", sgender=" + sgender + ']';

DBO 而 (rs.next())

            // retrieve data from result set row
            
              
             int      id           =  rs.getInt("studentId");
             String   sfirstName   =  rs.getString("sFirstName");
             String   sgender      =  rs.getString("gender");
             
          
            getStudentDetails tstudent = new getStudentDetails(id ,sfirstName,sgender); 
        
            student.add(tstudent);       
            
            

【问题讨论】:

record.slastNamesfirstName=scooby ? 在您的 servlet 中,您是否将此数据添加到您的请求或会话中? 学生 = studentDetailsDB.getStudents(); request.setAttribute("STUDENT_LIST", 学生); request.getRequestDispatcher("studentDetailsView.jsp").forward(request, response); 你确定students = studentDetailsDB.getStudents();不为空吗? 不,它不是空的 $STUDENT_LIST 具有问题中提到的格式的详细信息。当我执行 foreach 循环并尝试使用问题中提到的 record.id 获取数据时,我没有得到任何输出 【参考方案1】:

在您提供的 JSP 中,您没有包含 taglib 指令

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>

对于c:forEach

没有这个,你什么都得不到。

【讨论】:

添加后出现以下错误, Catchorg.apache.jasper.JasperException 内部:绝对 uri:[java.sun.com/jsp/jstl/core] 无法在 web.xml 或随此应用程序部署的 jar 文件中解析 我在 maven 存储库中有 jar 文件我尝试在依赖项中添加它,但它仍然没有工作 javax.servlet.jsp.jstljavaee-web -api7​​.0提供 在 xml 中添加了这个并且它工作了 javax.servletjstl1.2runtimetaglibsstandard1.1.2runtime

以上是关于如何在从 servlet 检索的 JSP 数据中显示数组数组。尝试从 JSP 访问时,记录不显示任何内容的主要内容,如果未能解决你的问题,请参考以下文章

显示从数据库中检索到的从servlet到jsp文件的数据

如何在 JSP 中显示数据库结果?

如何访问 JSP 中 servlet 设置的请求属性?

如何访问JSP中的servlet设置的请求属性?

如何以单选按钮格式显示问题和答案的数组列表?使用 JSP 和 servlet

如何在 JSP 页面中显示数据库表