JSP скриптлет крайне расплывчатая ошибка

Я просто положу это здесь. Я буквально не веду на это

<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>

Ошибка на <%}%> и не позволяет мне публиковать / компилировать. Все об ошибке говорит, что http://puu.sh/auyYc/2b40efef1f.png

Даже если ошибка была основана на чем-то вне jsp, я даже не знаю, где искать, основываясь на этом.

2 ответа

Проблема в том, что вы кодируете JSP как сервлет. в JSP область действия <%%> заканчивается внутри%>, в вашем случае вы создаете подпись цикла в фрагменте и пытаетесь закрыть его в другом фрагменте, который по правилу большого пальца не будет знать о цикле вообще,

Попробуйте использовать библиотеку тегов

определить библиотеку тегов как

<%@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>

Попробуйте изменить операторы импорта, используя следующий синтаксис:

<%@ page import="net.multivision.employee.Employee" %>
<%@ page import="java.util.List" %>

Соответствующая документация по директивам страницы

Объявление объявляет переменную или метод для использования позже в JSP. Директива дает инструкции контейнера относительно текущей страницы.

Другие вопросы по тегам