Преобразование и проверка достоверности данных в визуальных веб-приложениях JSF
В этом руководстве рассматриваются преобразования и проверки данных в JSF 1.2 (Woodstock). Преобразования позволяют преобразовывать строковые входные данные в типы данных Java с различными целями, например, для вычислений. Проверки достоверности позволяют выполнять проверку соответствия вводимых пользователем данных определенным диапазонам. Инфраструктура визуальных веб-приложений JSF используется для создания приложений, преобразующих значения температуры из шкалы Цельсия в шкалу Фаренгейта. Преобразование в приложении позволяет преобразовывать вводимые пользователем строковые значения в числовой тип данных Java для дальнейших вычислений. Проверка в приложении используется для подтверждения соответствия введенных данных определенному диапазону; сообщения об ошибках проверки достоверности выдаются через элемент "Message". Далее выполняется сборка веб-приложения, которое используется для вычисления значений валюты и просмотра отформатированного значения даты.
Также здесь рассматривается добавление к приложению собственного обработчика проверок достоверности и замещение встроенных сообщений об ошибках, выводимых в среде IDE при завершении процедуры проверки достоверности сбоем.
Содержание
Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.
| Среда IDE NetBeans |
Web & Java EE, версия 6.1 или 6.0 |
| Комплект для разработчика на языке Java (JDK) |
версия 6 или
версия 5 |
Элементы JavaServer Faces
Платформа Java EE |
1.2 с Java EE 5* или
1.1 с J2EE 1.4
|
| Сервер приложений GlassFish |
V2 |
| База данных TRAVEL |
Не требуется |
* Для получения преимуществ благодаря функциональности Java EE 5 в среде IDE NetBeans используйте сервер приложений, который является полностью совместимым со спецификацией Java EE 5, например, сервер приложений GlassFish V2 UR2. В случае использования другого сервера см. заметки о выпуске и часто задаваемые вопросы для получения информации об известных проблемах и обходных решениях. Для получения подробной информации о поддерживаемых серверах и платформе Java EE см. заметки о выпуске.
Примечание для пользователей среды IDE NetBeans 6.1:
- При создании проекта в NetBeans 6.1 доступны новые параметры, для которых можно оставить значения по умолчанию. Например, флажок Use Dedicated Folder for Storing Libraries может быть оставлен неустановленным.
- В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
Проектирование приложения
Этот раздел посвящен созданию приложения и добавлению в него необходимых элементов.
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
-
Создайте новый проект веб-приложения и назовите его ValidatorConverter. Включите инфраструктуру визуальных веб-приложений JavaServer Faces.
На рисунке ниже показана страница, создаваемая с помощью следующей процедуры.
-
Перетащите элемент "Text Field" из раздела "Basic" окна "Components Palette" на страницу. Установите для свойства label значение Celsius and set , а для свойства text – значение 0.0.
Свойства label и text расположены в разделе "Appearance" окна "Properties". Значение свойства "text" выводится по умолчанию при запуске приложения.
-
Установите для свойства required элемента "Text Field" значение "True" путем установки флажка в окне "Properties".
Свойство required расположено в разделе "Data" окна "Properties". Значение "True" означает, что пользователь должен ввести значение в поле ввода. Если пользователь не введет значение и попытается отправить страницу, будет выдано стандартное сообщение об ошибке проверки достоверности. Рядом с меткой "Celsius" выводится красная звездочка, указывающая на то, что установлено свойство "required".
- Разместите на странице элемент "Label". Измените текст этого элемента на
Fahrenheit.
- Разместите элемент "Static Text" справа от метки "Fahrenheit". Установите для свойства "text" значение
32.0, соответствующее точке замерзания воды по шкале Фаренгейта.
- Из раздела "Basic" окна "Palette" перетащите элемент "Message" и поместите его под меткой "Fahrenheit".
-
Удерживая нажатыми клавиши Ctrl-Shift, проведите линию от элемента "Message" до элемента "Text Field".
Текст элемента "Message" изменяется на "Message summary for textField1", как показано на следующем рисунке:
В следующем разделе добавляется проверка, позволяющая убедиться в том, что введенные пользователем данные входят в определенный диапазон.
Использование проверок
Если в приложении осуществляется сбор данных, вводимых пользователями, например, идентификаторов входа в систему и паролей, важно выполнять проверку этих данных. В среде IDE предоставляется ряд элементов для проверки достоверности вводимой пользователем информации; они находятся в разделе "Validators" окна "Components Palette". Простейшая проверка достоверности используется для подтверждения наличия в поле ввода определенного значения.
Проверка "Double Range Validator" используется для подтверждения того, что числовое значение находится в рамках определенного диапазона. При вводе необходимо использовать данные с плавающей точкой, либо значения, которые могут быть преобразованы в данные с плавающей точкой. Имеются и другие проверки: "Length Validator" и "Long Range Validator".
- "Length Validator" используется для проверки длины введенного в элемент текста: она должна точно соответствовать значениям, указанным для свойств проверки minimum и maximum. Значение должно быть java.lang.String.
- "Long Range Validator" используется для проверки того, что введенное пользователем значение находится в диапазоне между минимальным и максимальным значениями. При этом используется любое строковое значение с возможностью преобразования в тип данных Java long.
При использовании проверки (или преобразования, как описано ниже в разделе Использование преобразований) можно также применить элемент "Message" для индикации завершения проверки достоверности сбоем. Все действия по проверке достоверности выполняются в веб-приложении до вызова прослушивающих процессов действий или изменения значений, например, методов действия кнопок. В случае возникновения одной или нескольких ошибок подтверждения прослушивающие процессы действий или изменения значений не вызываются, и страница отображается веб-приложением повторно для предоставления пользователю возможности исправления ошибок.
В этом приложении перед передачей страницы целесообразно выполнять проверку наличия по крайней мере одного символа в элементе "Text Field". При этом для индикации завершения проверки достоверности сбоем также используется элемент "Message".
Элемент "Message", добавленный в предыдущем разделе, информирует пользователя в случае возникновения ошибок при проверке достоверности.
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
-
В окне "Palette" разверните раздел "Validators". Перетащите проверку "Double Range Validator" из окна "Palette" в элемент "Text Field".
Элемент "Double Range Validator" является невизуальным. Значение по умолчанию doubleRangeValidator1 отображается в окне "Navigator" и в свойстве validator в окне "Properties", как показано на рисунках ниже.
- В окне "Navigator" выберите "doubleRangeValidator1".
-
Укажите диапазон для проверки в окне "Properties".
- Установите для свойства
maximum значение 1000.0 (очень высокая температура).
- Установите для свойства
minimum значение -273.15 (т.е. абсолютный нуль по шкале Цельсия).
В этом разделе была реализована возможность проверки достоверности введенного пользователем значения с помощью "Double Range Validator". В следующем разделе реализуется пересчет введенного строкового значения в градусах по Цельсию в значение по Фаренгейту с помощью преобразования.
Использование преобразований
В среде IDE предоставляется ряд преобразований, предназначенных для преобразования данных элементов. С их помощью можно преобразовывать значения типа java.lang.String в свойствах элемента в типы данных Java.
Стандартные преобразования доступны в разделе "Converters" окна "Components Palette". При связывании элемента тип данных обычно идентифицируется в среде IDE, а при создании привязки к значению свойства определяется соответствующее преобразование. Однако в среде IDE преобразования можно также добавлять вручную путем установки значения свойства "Converter".
Примечание: Преобразования выполняются перед началом процесса проверки достоверности. Если пользователь указывает значение, которое невозможно преобразовать в определенный тип данных, веб-приложение отклоняет введенные данные и выдает сообщение об ошибке. Это сообщение об ошибке отображается в элементе "Message Group" и в связанном элементе "Message", если таковые присутствуют на странице. Числовое преобразование "Number Converter" целесообразно использовать для указания шаблонов, которым должны соответствовать входные данные.
Существуют и другие элементы преобразования, в том числе следующие:
- Преобразование "Big Decimal Converter" позволяет преобразовывать значения java.lang.String в типы данных java.math.BigDecimal, например, при связывании элемента JSF со столбцом базы данных Oracle типа NUMBER.
- Элемент "Boolean Converter" используется для преобразований между значениями java.lang.String и значениями типа данных java.lang.Boolean или примитивного типа Java boolean, например, при связывании элемента JSF со столбцом базы данных типа BOOLEAN.
- Элемент "Byte Converter Component" используется для преобразований между значениями java.lang.String и значениями типа java.lang.Byte или примитивного типа Java byte, например, при связывании элемента JSF со столбцом базы данных типа SMALLINT или TINYINT.
- Элемент "Calendar Converter" используется для преобразования значений между типами данных java.lang.String и java.util.Calendar. Это преобразование целесообразно использовать, например, при привязке к веб-службе с полем типа "dateTime".
Выше была настроена проверка соответствия входной температуры в градусах по Цельсию диапазону между абсолютным нулем и 1000°. Далее с помощью преобразования "Double Converter" пользовательский ввод преобразуется в значение типа "Double", которое затем используется для перевода введенной температуры по Цельсию в градусы по Фаренгейту.
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
-
В окне "Palette" разверните раздел "Converters". Перетащите преобразование "Double Converter" из окна "Palette" в элемент "Text Field".
Это преобразование указывает, что элемент "Text Field" возвращает объект "Double", а не "String". Значение по умолчанию doubleConverter1 отображается в окне "Properties" и в окне "Navigator".
-
Дважды щелкните элемент "Text Field" для открытия исходного кода в редакторе Java.
-
Добавьте следующий код (выделен полужирным шрифтом) к методу действия textField1_processValueChange.
| Пример кода 1: метод-обработчик события изменения значения |
public void textField1_processValueChange(ValueChangeEvent event) {
double celsiusTemp = ((Double) textField1.getText()).doubleValue();
double fahrenheitTemp = 9.0 * celsiusTemp / 5.0 + 32.0;
staticText1.setText(new Double(fahrenheitTemp));
} |
В этом коде устанавливаются две переменные: значение celsiusTemp, введенное в textField1, и значение fahrenheitTemp, в которое преобразуется celsiusTemp с помощью указанного вычисления. В последней строке определяется новое значение fahrenheitTemp в поле "Static Text".
Тестирование приложения
В этом разделе при выполнении приложения вводятся различные данные для демонстрации возможных ошибок проверки достоверности и преобразования.
- Для сборки и запуска приложения выберите "Run > Run Main Project".
-
Удалите значение "0.0" из текстового поля и нажмите клавишу Enter без ввода нового значения. Проверьте, что появляется ошибка для текстового поля, как показано на рисунке ниже.
Фактической причиной появления этой ошибки является то, что для свойства required текстового поля установлено значение true. При отправке страницы посетителем достоверность введенных данных проверяется в следующем порядке:
- Преобразования
- Требуемый ввод
- Проверка достоверности
Примечание: События изменения значений происходят только в том случае, если значение фактически изменяется, и все проверки достоверности завершаются успешно.
-
Вводите различные числа для тестирования приложения. На рисунке ниже показаны результаты при вводе значения "100".
-
Проверьте, что при вводе значения вне диапазона выдается ошибка проверки достоверности, а также что при вводе нечислового строкового значения выдается ошибка преобразования.
На рисунке ниже показан результат при вводе значения "-1000". Учтите, что при ошибке проверки достоверности или преобразования метод прослушивающего процесса изменения значения не вызывается, и значение в элементе "Static Text" не изменяется.
-
Введите алфавитно-цифровую строку, например, 20x. Поскольку настройка приложения позволяет преобразовывать только числовые форматы, возвращается ошибка преобразования, как показано на рисунке ниже.
Дополнительные упражнения: Использование преобразований чисел и даты/времени
Два стандартных преобразования, "Number" и "Date Time", обладают собственными свойствами, позволяющими указать формат и тип данных. В этом мини-руководстве демонстрируется использование этих двух преобразований.
На следующем рисунке показана страница, создаваемая в этом разделе:
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
- В окне "Projects" щелкните правой кнопкой мыши "ValidatorConverter > Web Pages" и выберите "New > Visual Web JSF Page". Введите название страницы "Currency" и нажмите кнопку "Finish".
- Щелкните правой кнопкой мыши "ValidatorConverter > Web Pages > Currency.jsp" и выберите "Set As Start Page".
- Перетащите элемент "Text Field" из раздела "Woodstock Basic" окна "Components Palette" на страницу. В окне "Properties" установите для свойства label элемента "Text Field" значение Dollar Amount:, а для свойства required – значение True.
- Разместите элемент "Button" справа от элемента "Text Field". Измените текст кнопки на Convert.
Примечание: Существует известная проблема, связанная с шириной элемента "Button" на основе JSF 1.2 в IE7. Обходным решением является размещение элемента "Button" в элементе структуры ("Grid Panel", "Group Panel" или "Layout Panel"). При изменении размеров элемента структуры автоматически изменяются размеры элемента "Button".
-
Перетащите на страницу два элемента "Label" из раздела "Вasic" окна "Palette".
Укажите для первой метки текст Converted to Euros:, а для второй метки – Date and Time:.
- Разместите элементы "Static Text" рядом с обеими метками.
-
Перетащите элемент "Message" из раздела "Basic" окна "Palette" под метку "Date and Time".
Удерживая нажатыми клавиши Ctrl-Shift, проведите линию от элемента "Message" до элемента "Text Field".
-
Перетащите элемент "Number Converter" из раздела "Converters" окна "Palette" на страницу "Text Field".
Это преобразование чисел указывает на то, что элемент "Text Field" возвращает объект "Number", а не "String".
-
В диалоговом окне "Number Format" выберите "Currency" в раскрывающемся списке "Type". Установите для свойства "Fractional Digits Max" значение "2", а для свойства "Locale" – "English (United States)", как показано на рисунке ниже, и нажмите кнопку "OK".
Следует отметить, что по умолчанию "Currency Code" установлено значение USD United States of America, Dollars – сокращение валюты, страна и имя валюты, связанное с языком. Для просмотра разных валют выберите другие языки.
В свойстве преобразования в окне "Properties" и в окне "Outline" появляется "Number Converter".
- Перетащите "Number Converter" из окна "Palette" в элемент "Static Text" рядом с меткой "Converted to Euros".
-
В диалоговом окне "Number Format" выберите из раскрывающегося списка "Type" значение "Currency", а из раскрывающегося списка "Locale" – значение "German (Germany)". Установите для свойства "Fractional Digits Max" значение "2" и нажмите кнопку "OK".
На этот раз значение по умолчанию поля "Currency Code" – EUR, Euro Member Countries, Euro. (Если, например, выбран язык "German (Switzerland)", по умолчанию для свойства "Currency Code", устанавливается значение CHF, Switzerland, Francs, поскольку Швейцария не входит в Еврозону.)
- Перетащите "Date Time Converter" из окна "Palette" в "Static Text" рядом с меткой "Date and Time".
- В окне "Navigator" выберите dateTimeConverter1.
- В окне "Properties" преобразования нажмите кнопку с многоточием
рядом со свойством pattern.
-
Введите EEE, d MMM yyyy HH:mm:ss zzzz в поле "Pattern" и нажмите кнопку "OK". По мере добавления элементов к шаблону текущее значение выводится в свойстве шаблона в окне "Properties".
Обратите внимание на изменение значений при вводе элементов. Например, если сначала ввести EEEE вместо EEE, шаблон включает название дня недели полностью, а не его сокращение. Если в конце ввести только одну букву "z", появляется сокращение часового пояса.
Для получения дополнительных сведений о форматировании даты и времени см. урок Настройка форматов в руководствам по Java (внешняя ссылка, открывается на отдельной странице).
Добавление кода
- Дважды щелкните кнопку "Convert" для открытия ее исходного кода в редакторе Java.
-
Добавьте следующие две строки непосредственно над методом button1_action. Значение "0.74" указывает приблизительный обменный курс евро к доллару.
| Пример кода 2: постоянное значение обменного курса доллара к евро |
// constant value for dollars to euros exchange
private static final double us2euros = 0.74; |
-
Добавьте следующий код (выделен полужирным шрифтом) к методу button1_action. Комментарии в коде определяют действия, выполняемые в каждой строке.
| Пример кода 3: постоянное значение обменного курса доллара к евро |
public String button1_action( ) {
// get the amount of dollars the user entered
Number dollars = (Number) textField1.getValue();
// exchange the dollars for euros
double euros = dollars.doubleValue() * us2euros;
// display the amount of euros
staticText1.setText(new Double(euros));
// figure out the date and time
Date date = new Date();
staticText2.setText(date);
return null;
} |
- Щелкните правой кнопкой мыши в редакторе Java и выберите "Fix Imports". В поле "Fully Qualified Name" выберите java.util.Date и нажмите кнопку "OK".
Тестирование приложения
- Запустите приложение.
- Введите строки с разными суммами, например, $10. Необходимо соблюдать следующие правила:
- Преобразование выдает исключение в том случае, если первый символ во входной строке не является символом денежной единицы (в данном случае – $), либо если между символом денежной единицы и первой цифрой присутствует пробел. Для просмотра ошибки используется элемент "Message".
- В качестве разделителей можно использовать запятые, например, "$1,234", однако это необязательно. Запятые в неправильном месте, даже справа от десятичной точки, игнорируются. После преобразования запятые расставляются в правильных местах.
- Ввод более двух цифр после десятичной точки приводит к округлению до целого цента. Это поведение зависит от языка: в таких языках, как японский, денежные единицы редко отображаются с десятичными значениями.
На рисунке ниже показан результат при вводе значения $100.00.
На рисунке ниже показаны результаты при вводе значения "100" без символа "$". Преобразованное значение из предыдущего рисунка сохраняется, но отображается ошибка преобразования.
Для получения дополнительных сведений о форматировании чисел см. руководство Java Настройка форматов (внешняя ссылка, открывается на новой странице).
Дополнительные упражнения: Добавление собственного обработчика проверок
Если для выполнения необходимой проверки достоверности стандартных проверок недостаточно, можно добавить собственный обработчик проверки достоверности. Этот раздел посвящен созданию обработчика проверки достоверности, проверяющего введенные пользователем данные и ограничивающего их трехзначным числом, с помощью функциональных возможностей визуального веб-приложения JSF в среде NetBeans. Эти действия можно добавить к странице "Currency.jsp", созданной в предыдущем разделе.
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
- Нажмите кнопку "Design" для возврата к Visual Designer.
- Выберите элемент "Text Field" Dollar Amount и установите для свойства "required" значение "False".
- Перетащите элемент "Text Field" из раздела "Woodstock Basic" окна "Components Palette" на страницу. Установите для свойства "label" элемента "Text Field" значение Value, а для свойства "required" – значение True.
- Разместите элемент "Button" справа от элемента "Text Field". Измените текст кнопки на "Submit".
-
Поместите элемент "Message" под элементом "Text Field". Удерживая нажатыми клавиши Ctrl-Shift, проведите линию от элемента "Message" до элемента "Text Field".
Текст элемента "Message" изменяется на "Message summary for textField2".
-
Щелкните правой кнопкой мыши элемент "Text Field" и выберите "Edit Event Handler > validate".
При этом открывается редактор Java. Среда IDE автоматически добавляет к коду операторы импорта для классов "ValidatorException", "FacesContext" и "FacesMessage". Точка вставки находится в событии проверки для текстового поля. Третий параметр – value – является строковым значением, которое должно проверяться на достоверность.
-
Введите следующий код (выделен полужирным шрифтом).
| Пример кода 4: код собственной проверки |
public void textField2_validate(FacesContext context, UIComponent component, Object value) {
String s = String.valueOf(value);
if (!s.matches("\\d\\d\\d")){
throw new ValidatorException(new FacesMessage
("Not a three-digit number."));
}
} |
В методе matches для данных String s используется регулярное выражение, указывающее допустимые значения, принимаемые строкой. Выражение \d соответствует цифре (0-9).
Символ "\" в строковом литерале обладает особым значением для синтаксического анализатора Java. Дополнительный знак "\" указывает, что второй знак "\" должен проходить через синтаксический анализатор в интерпретатор шаблонов без изменений. Таким образом, выражение \d\d\d соответствует любому трехзначному числу от 000 до 999.
Если строка не соответствует регулярному выражению, сообщение передается в конструктор "ValidatorException". Сообщение ставится в очередь к "FacesMessage" и выводится на странице на фазе визуализации.
- Щелкните правой кнопкой мыши редактор Java и выберите "Fix Imports". В диалоговом окне "Fix All Imports" нажмите кнопку "OK". Средой IDE импортируются пакеты javax.faces.validator.ValidatorException и javax.faces.application.FacesMessage.
-
Запустите приложение. Введите числовые и символьные строки различной длины для тестирования приложения. Следует убедиться в том, что при отсутствии значения в текстовом поле выводится стандартная ошибка проверки достоверности.
На рисунке ниже показан результат в случае ввода четырехзначного числа.
Дополнительные упражнения: Настройка стандартного сообщения проверки
Встроенные сообщения об ошибках, выдаваемые в среде IDE NetBeans при сбое стандартной проверки достоверности, можно переопределить.
Для проекта, в котором требуется выдавать пользовательское сообщение, создается набор ресурсов. Обратите внимание на то, что это переопределение глобальное, а не на уровне элемента. Это означает, что все требуемые элементы возвращают одно и то же значение.
Настройка сообщений
В этом разделе описана настройка сообщений для проверок "Length", "Double Range" и "Long Range" в JSF 1.1/J2EE 1.4. Обратите внимание на то, что этот процесс несколько более длительный, чем добавление собственных сообщений в JSF 1.2. Для настройки сообщения об ошибках по умолчанию для требуемого ввода используется среда IDE. Сначала создается набор ресурсов, в котором используемые программой коды сопоставляются со строками, выдаваемыми пользователю, а затем выполняется изменение файла faces-config.xml, который должен указывать на набор ресурсов MyResources.properties.
Примечание: В описанной в этом разделе процедуре используется проект с именем "ValidatorConverter". Если выбрано другое имя, необходимо соответственно изменить имя проекта во всех случаях его использования.
Примечание: В среде IDE NetBeans 6.1 поддерживается привязка по запросу. В тех местах, где элементы требуют написания кода Java, теперь следует вручную добавить атрибут привязки к элементам в визуальном веб-приложении JSF. Для этого щелкните правой кнопкой мыши каждый элемент и выберите "Add Binding Attribute". Для получения дополнительных сведений см. вики-страницу On-demand Binding Attribute.
- В окне "Projects" щелкните правой кнопкой мыши "ValidatorConverter" и выберите "New > Other".
- В мастере "New File" выберите "Other" в поле "Categories", затем выберите "Properties File" в поле "File Types" и нажмите кнопку "Next".
-
Введите MyResources в поле "File Name", затем введите src/java/validatorconverter в поле "Folder" и нажмите кнопку "Finish".
В среде IDE создается набор ресурсов и открывается файл с именем MyResources.properties. В файле MyResources.properties содержится текст замены для сообщений, используемых элементами.
-
Закройте файл MyResources.properties.
-
В окне "Files" разверните "ValidatorConverter > src> Java > validatorconverter", щелкните правой кнопкой мыши MyResources.properties и выберите "Open" для открытия окна "Key-Values Properties Editor".
В окне "Key-Values Properties Editor" к набору ресурсов можно добавлять пары кодов и значений.
- Выберите "New Property".
-
В диалоговом окне "New Property" введите javax.faces.component.UIInput.REQUIRED в поле "Key". Введите Please enter a value and then press Enter в поле "Value".
Важно: Проверьте отсутствие пробелов в конце кода. При наличии пробелов приложение будет работать некорректно.
Список всех кодов для стандартных сообщений приводится в разделе Коды стандартных сообщений ниже.
-
Нажмите кнопку "OK". Значения отображаются в редакторе свойств, как показано на рисунке ниже.
- Разверните узел "ValidatorConverter > Web Pages > WEB-INF" в окне "Projects". Щелкните правой кнопкой мыши faces-config.xml и выберите "Open".
- На панели инструментов изменения выберите "XML".
-
Введите следующий код в файле "faces.config". Обратите внимание на то, что этот код содержит имя проекта. Если выбрано имя проекта, отличное от "ValidatorConverter", измените текст в коде в соответствии с фактическим именем проекта. Учтите, что в элементе файла сообщений символы имени проекта в верхнем регистре необходимо заменить на символы в нижнем регистре.
<application>
<message-bundle>validatorconverter.MyResources</message-bundle>
</application>
Элемент message-bundle представляет собой набор локализованных сообщений. Этот элемент включает полный путь к набору ресурсов, содержащему локализованные сообщения, в данном случае – validatorconverter.MyResources.
- Запустите проект.
-
Удалите весь текст в текстовом поле и нажмите клавишу Enter.
Настроенное сообщение отображается в поле "Message", как показано на рисунке ниже.
Коды стандартных сообщений
В среде IDE NetBeans можно использовать набор ресурсов для обработки информационных сообщений, выдаваемых в результате преобразования, проверки достоверности или других действий приложения во время жизненного цикла обработки запросов. Коды стандартных сообщений приведены в следующей таблице.
Заключение
В руководстве рассматриваются следующие темы:
- использование преобразований для преобразования строковых входных данных в числовые значения на примере преобразования между форматами температуры и денежными значениями, а также вывод форматов даты;
- использование проверок для контроля соответствия вводимых значений указанному диапазону и формату;
- создание собственных обработчиков проверки достоверности и настройка сообщений, выдаваемых пользователям.
Дополнительная информация
Дата последнего изменения страницы: 15 апреля 2008 г.