То, что я в основном пытаюсь сделать, это распечатать результаты поиска (все они передаются в один объект) из сервлета в динамическую таблицу в HTML.
Я не могу, дляЯ понимаю, почему сильный текст не работает со стороны JS.
Это раздел моего JSP на основе HTML, который работает.
<div id="dynaTable">
<table>
<tr>
<td>Title</td>
<td>Author</td>
<td>Price</td>
</tr>
<%
QueryResult result = (QueryResult) (request.getAttribute("result"));
if (result == null) {
return;
} else {
int len = result.getN();
int i_id[] = result.getI_id();
String title[] = result.getTitle();
String author[] = result.getAuthor();
float price[] = result.getPrice();
for (int i = 0; i < len; i++) {
%>
<tr>
<td><%=title[i]%></td>
<td><%=author[i]%></td>
<td><%=price[i]%></td>
</tr>
<%
}
}
%>
</table>
</div>
Это раздел моего Javascriptна основе JSP, который НЕ работает.
<% QueryResult result = new QueryResult(); %>
<%try{%>
<% result = (QueryResult) request.getAttribute("result"); %>
<%int len = result.getN();%>
<% request.setAttribute("length", len);%>
console.log("<%=request.getAttribute("length")%>");
<%}catch(Exception e){%>
console.log("In Catch Block");
<%}%>
Здесь, к сожалению, он всегда дает исключение. Вот трассировка стека:
org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/Test] threw exception [An exception occurred processing [/assets/JS/itemList.jsp] at line [18]
15: //$("#dynatable2").append("");
16: <% QueryResult result = new QueryResult(); %>
17: <% result = (QueryResult) request.getAttribute("result"); %>
18: <%int len = result.getN();%>
19: <%try{%>
20: <% request.setAttribute("length", len);%>
21: console.log("<%=request.getAttribute("length")%>");
Stacktrace:] with root cause
java.lang.NullPointerException
ПРИМЕЧАНИЕ. Если вы считаете, что существует исключение нулевого указателя, поскольку скрипт выполняется еще до поиска, то же самое происходит снова, когда я ищу что-то, что возвращаетрезультаты.