Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP脚本非常模糊的错误_Jsp_Scriptlet - Fatal编程技术网

JSP脚本非常模糊的错误

JSP脚本非常模糊的错误,jsp,scriptlet,Jsp,Scriptlet,我把这个放在这里。我确实没有这方面的线索 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <title>Employee t

我把这个放在这里。我确实没有这方面的线索

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<title>Employee table</title>
</head>
<body>
<%! import net.multivision.employee.Employee; %>
<%! import java.util.List; %>
<% List<Employee> table = (List<Employee>)session.getAttribute("table"); %>
<table class="table table-striped">
<tr>
<th>id</th>
<th>Name</th>
<th>Age</th>
<th>Dept</th>
<th>Salary</th>
<th>Start Date</th>
<th>Type</th>
</tr>
<% for(Employee e : table){ %>
<tr>
<td><%= e.getId() %></td>
<td><%= e.getName() %></td>
<td><%= e.getAge() %></td>
<td><%= e.getDept() %></td>
<td><%= e.getSalary() %></td>
<td><%= e.getStartdate() %></td>
<td><%= e.getType() %></td>
</tr>
<% } %>
</table>
</body>
</html>
错误已打开,阻止我发布/编译。所有的错误都表明


即使错误是基于jsp之外的内容,我也不知道基于此在何处查找。

尝试使用以下语法更改导入语句:

<%@ page import="net.multivision.employee.Employee" %>
<%@ page import="java.util.List" %>
关于页面指令的相关文档


声明声明声明了一个变量或方法,供以后在JSP中使用。指令给出关于当前页面的容器指令。

问题在于您将JSP编码为servlet。在JSP中,a的作用域在%>中结束,在您的例子中,您在一个代码段中创建了一个循环签名,并试图在另一个代码段中关闭它,根据经验,这根本不知道循环

尝试改用标记库

将标记库定义为

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
然后将循环的代码更新为

<c:forEach items="${table}" var="e">
<tr>
<td><%= e.getId() %></td>
<td><%= e.getName() %></td>
<td><%= e.getAge() %></td>
<td><%= e.getDept() %></td>
<td><%= e.getSalary() %></td>
<td><%= e.getStartdate() %></td>
<td><%= e.getType() %></td>
</tr>
</c:forEach>

解决了的。我仍然不理解指令和声明之间的区别,您能简单解释一下为什么这样做吗?根据要求更新了不同之处。让我知道这是否足够:如果有帮助,请将此标记为答案。