Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 446

Ильдар Шаукатович Хабибуллин

Например, тег

<fmt:formatNumber var="formattedAmount" pattern="0.00" value="${amount}" />

запишет в переменную formattedAmount типа String количество amount с двумя цифрами в дробной части, а тег

<fmt:formatDate var="ruDate" pattern="dd.MM.yyyy" value="${today}" />

запишет в переменную ruDate типа String дату today в виде 08.12.2007.

Теги

<fmt:parseNumber var="n" pattern="0.00" value="${amount}" />

<fmt:formatDate var="d" pattern="dd.MM.yyyy" value="${today}" />

выполняют обратное преобразование строки символов, заданной атрибутом value, в объекты типа Number и Date соответственно, записанные в переменные n и d по шаблону pattern.

Эти теги реализованы классами DecimalFormat и SimpleDateFormat из пакета java.text и преобразуют данные по правилам этих классов, которые можно посмотреть в документации Java SE.

Библиотека sql

Четвертая библиотека, sql, описываемая тегом

<%@ taglib uri="" prefix="sql" %>

содержит теги связи и работы с базами данных: <sql:setDataSource>, <sql:query>, <sql: update> и <sql:transaction>. Их действие построено на JDBC и работа с ними очень похожа на работу с базами данных через JDBC, что можно понять из следующего примера:

<sql:setDataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL" user="scott" password="tiger"

/>

<sql:query var="depts" > select * from DEPT </sql:query>

<sql:transaction>

<sql:update>

insert into DEPT values(50, 'XXX', 'YYY')

</sql:update>

</sql:transaction>

Библиотека fn

Пятая библиотека, fn, содержит функции для обработки строк. Она описывается тегом

<%@ taglib uri="" prefix="fn" %>

и содержит теги <fn:substring>, <fn:substringBefore>, <fn:substringAfter>, <fn:indexOf>, <fn:toUpperCase> <fn:toLowerCase>, <fn:startsWith>, <fn:endsWith>, <fn:contains>,

<fn:containsIgnoreCase>, <fn:trim>, <fn:replace>, <fn:split>, <fn:join>, <fn:escapeXml>. Вы,

несомненно, узнаете в названиях этих тегов привычные методы обработки строк, которые мы изучили в главе 5.

Кроме тегов обработки строк, библиотека fn содержит функцию <fn:length>, вычисляющую как длину строки, так и длину коллекции, переданной ей в качестве аргумента. Например:

<c:if test="${fn:length(param.username) > 0}" >

<%@include file="response.jsp" %>

</c:if>

Frameworks

Приступая к разработке Web-приложения, каждая команда решает вопрос о его архитектуре. Чаще всего ответ находится в схеме MVC (Model-View-Controller) (см. главу 3). Один или несколько сервлетов, принимающих и обрабатывающих запросы клиента, составляют Контроллер. Подготовка ответа, связь с базой данных, отбор информации, все то, что называется бизнес-логикой или бизнес-процессами, выполняется классами Java, образующими Модель. Страницы HTML и JSP, заполненные информацией, полученной от Модели, составляют Вид.