Электронный магазин на Java и XML

         

Отображение элементов...



Листинг 6.55. Отображение элементов Image, Clip и кнопки Submit (Edit.jsp)

<tr>
<td>
Price</td>
<td>
<input name="price" value="<%= product.getPrice() %>
" />
</td>
<td>
Discount</td>
<td>
<input name="discount" value="<%= Util.notNull(product.getDiscount()) %>
" />
</td>
</tr>
<tr>
<td>
Quantity in Stock</td>
<td>
<input name="quantity" value="<%= product.getQuantityInStock() %>
" />
</td>
</tr>
<tr>
<td>
On Sale Date</td>
<td colspan="3">
<input name='onSaleDate' value='<%= product.getOnSaleDate() %>
' />
(mm-dd-yyyy hh:mm:ss)</td>
</tr>
<tr>
<td>
Description</td>
<td colspan="3">
<textarea rows="5" cols="40" name="description">
<%= Util.notNull(product.getDescription()) %>
</textarea>
</td>
</tr>
</table>

В нижней части этой JSP-страницы определено несколько вспомогательных методов. Первый из них называется output Image. Он призван отобразить элемент формы для объекта Image в нужных местах, которых может быть несколько. Этот метод не входит ни в один стандартный класс Java, вызываемый из JSP-страницы, так как он сильно связан с логикой представления. Полезно иметь отдельный класс для определения методов, которые выполняют в JSP-странице какие- либо задачи, не связанные с логикой представления; но в данном случае метод предназначен для получения кода HTML. Если вы поместите этот метод в отдельный класс, получится, что одна и та же страница обрабатывается в двух местах, в результате усложнится обслуживание кода. Лучше весь код, отвечающий за представление страницы, держать в одном месте.

Методу outputlmage, приведенному в листинге 6.56, передаются два параметра: строка, служащая идентификатором изображения, и сам объект Image. Имя поля input будет составлено из строки image (изображение) и переданного идентификатора. Таким образом вы получаете уникальное название для каждого изображения. Это название используется как для отображения на странице для пользователя, так и в качестве значения атрибута name объекта input. Каждый из атрибутов и элементов объекта Image отображается в отдельном текстовом поле, которое пользователь может заполнять.



Содержание раздела