Следующий пример похож на приведенный ранее в разделе о сервлетах. При первом показе страницы она определяет, что у вас нет полей и возвращает страницу, содержащую форму с помощью того же самого кода, что и в примере с сервлетом, но в формате JSP. Когда вы отправляете форму с заполненными полями по тому же самому JSP URL'у, страница обнаруживает поля и отображает их. Это прелестная техника, поскольку она позволяет вам получить две страницы, одна из которых содержит форму для заполнения пользователем, а вторая содержит код ответа на эту страницу, в едином файле, таким образом, облегчается создание и поддержка.
//:! c15:jsp:DisplayFormData.jsp <%-- Извлечение данных из HTML формы. --%> <%-- Эта JSP также генерирует форму. --%> <%@ page import="java.util.*"%> <html> <body> <H1>DisplayFormData</H1> <H3> <% Enumeration flds = request.getParameterNames(); if (!flds.hasMoreElements()) { // Нет полей %> <form method="POST" action="DisplayFormData.jsp"> <% for (int i = 0; i < 10; i++) { %> Field<%=i%>: <input type="text" size="20" name="Field<%=i%>" value="Value<%=i%>"><br> <% } %> <INPUT TYPE=submit name=submit value="Submit"></form> <% } else { while (flds.hasMoreElements()) { String field = (String) flds.nextElement(); String value = request.getParameter(field); %> <li><%=field%> = <%=value%></li> <% } } %> </H3> </body> </html> ///:~
Более интересное свойство этого примера заключается в том, что он демонстрирует, как код скриплета может быть перемешан с HTML кодом даже в том месте, где генерируется HTML внутри Java цикла. Это особенно удобно для построения форм любого рода, в противном случае необходимо было бы вставлять повторяющийся HTML код.
← | Скриптовые элементы JSP | Атрибуты JSP страницы и область видимости | → |