Java-код JSP + HTML-таблица - PullRequest
       10

Java-код JSP + HTML-таблица

0 голосов
/ 13 декабря 2010

Я столкнулся с проблемой, которую на самом деле не понимаю. Я использую код Java для доступа к базе данных, а затем использую часть JSP, чтобы отобразить результат в формате HTML. Код выглядит так:

out.println("<html><body>");

out.println("<form method=\"GET\" action=\"http://localhost:1234/WebLabJSP/delete\">");

out.println("<table>");

out.println("<tr><th>Name</th><th>Quantity</th><th>Category</th></tr>");

ResultSet rs = s.executeQuery("select * from Products");


while(rs.next()){


out.println("<tr><td>" + rs.getString(2) + "</td><td>" + rs.getString(3) + "</td><td>" + rs.getString(4) + "</td><td><input type=\"submit\" value=\"Delete\" name=\"delete" + rs.getString(1) + "\"/></td><td><input type=\"submit\" value=\"Update\" name=\"update" + rs.getString(1) + "\"/></td></tr>");

   } 

out.println("</table></form>");

out.println("</body></html>");

Проблема в том, что если у меня есть только кнопка удаления в форме, она работает отлично, но когда я добавил вторую кнопку, страница вообще ничего не отображала. Если кто-нибудь знает, что происходит, пожалуйста, помогите.

Ответы [ 5 ]

4 голосов
/ 13 декабря 2010

Прежде всего, это не то, как вы должны использовать JSP.На jsp используйте jstl, а на сервлете используйте java-код.

и о вашей проблеме попробуйте проверить сгенерированный HTML.Он должен иметь

<form ...>
.
.
.
.<input type="submit" name="something" value="delete"/>
.<input type="submit" name="something" value="update"/>
</form>

или проверить журнал сервера,

См. Также

4 голосов
/ 13 декабря 2010

Если вы получаете пустую страницу, то это часто вызывается тем, что во время рендеринга ответа выдается исключение, и сервлет-контейнер не может отобразить стандартную страницу ошибки с деталями исключения, поскольку ответ уже зафиксирован.

Исключение будет записано в файл журнала сервера.Найдите его, прочитайте трассировку стека и исправьте проблему соответствующим образом.


Вне зависимости от конкретной проблемы, практика кода, которую вы демонстрируете, на самом деле является плохой практикой.Код Java должен идти в классе Java (управляемом сервлетом), а код HTML должен идти в JSP без использования out.println().JSTL должен использоваться для управления потоком страниц.См. Также этот ответ для примера.Таким образом, исключения будут / могут быть своевременно перехвачены и окажутся на странице ошибок.

1 голос
/ 13 декабря 2010

Окружите ваше:

ResultSet rs = s.executeQuery("select * from Products");
while(rs.next()){
out.println("<tr><td>" + rs.getString(2) + "</td><td>" + rs.getString(3) + "</td><td>" + rs.getString(4) + "</td><td><input type=\"submit\" value=\"Delete\" name=\"delete" + rs.getString(1) + "\"/></td><td><input type=\"submit\" value=\"Update\" name=\"update" + rs.getString(1) + "\"/></td></tr>");
   } 

блоком try / catch, чтобы увидеть, есть ли исключение.

0 голосов
/ 14 декабря 2010

Не используйте процесс подключения и другой процесс обновления на странице jsp, попробуйте использовать сервлеты или другие javabeans. тег для использования этих сервлетов ... если вы хотите обновить означает просто вызвать эту функцию, объявленную внутри этого сервлета. сервлеты действуют как более мощные контроллеры вашей страницы.

0 голосов
/ 13 декабря 2010

Почему вы не помещаете переменные в запрос

request.setAttribute("string1",rs.getString(1));

, а затем вызываете его в своем jsp

<td><%=request.getParameter("string1")%>;
...