JavaServer Faces и средства ODC, Информация о выпуске

© Copyright International Business Machines Corporation 2006. Все права защищены. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.

Информация о выпуске

1.0 Ограничения
   1.1 Компоненты клиента Faces данные клиента устарели
   1.2 Миграция приложений JSF более ранних версий, чем V7
   1.3 Модификация дерева при перемещении из WDO в SDO
   1.4 Теперь hx:commandExButton правильно выводит изображение
2.0 Известные неполадки и обходные пути
   2.1 Атрибуты style и styleClass тега jspPanel больше не доступны
   2.2 Во время импорта проекта появляется ошибочное предупреждение
   2.3 Несколько моделей данных клиента на одной странице
   2.4 Создание портлетов, использующих Данные клиента в V7.0+
   2.5 Панель с закладками с высотой в процентах
   2.6 Вывод панели с закладками в режиме сторогого соответствия стандартам (Strict Mode)
   2.7 hx:convertDateTime неправильно работает с арабскими календарями
   2.8 При выборе сервера WebSphere в качестве целевой среды выполнения убедитесь, что выбран фасет проекта WebSphere
   2.9 Неправильное выравнивание столбцов DataTable JWL при использовании loose.dtd и ширины столбцов в процентах
   2.10 В hx:panelDialog может не работать "относительное" позиционирование, если базовый тег, используемый для позиционирования, прокручен
   2.11 Таблицу данных с функцией выбора строк нельзя помещать в панель с включенной поддержкой AJAX
   2.12 ajaxExternalRequest может неправильно работать в Internet Explorer, если ИД панели в целевой странице не совпадает с ИД панели в исходной странице
   2.13 Не работает атрибут inProgresss для hx:ajaxRefreshRequest и других тегов AJAX
   2.14 hxinputHelperTypeahead неправильно обрабатывает поисковые значения, содержащие пробелы, символы процента и амперсанды
   2.15 hx:panelDialog в Firefox версии 1.5.0.8 и выше может быть расположен неправильно
   2.16 hx:pagerDeluxe обрабатывается неправильно, если значение styleClass не равно "pagerDeluxe"

1.0 Ограничения

1.1 Компоненты клиента Faces данные клиента устарели

Устарели и не рекомендованы к использованию:

Дерево <odc:tree> и диаграмма <odc:graphDraw> могут использовать Данные сервера.

1.2 Миграция приложений JSF более ранних версий, чем V7

Если вы импортируете приложение JSF более ранней версии, чем V7, без миграции JSF JARS продолжите разработку приложения, то новые для V7 теги не будут включены в файлы JAR проекта и не будут доступны во время выполнения.  Выполните миграцию файлов JARS более ранней версии, чем V7.

1.3 Модификация дерева при перемещении из WDO в SDO

Тег <odc:treeNodeAttr> управляющих элементов дерева использует для атрибута className разные значения при связывании с данными SDO и при связывании с данными WDO. Простейший способ исправить эту неполадку - удалить и создать заново все управляющие элементы дерева после переноса проекта с сервера, использующего WDO (такого как WebSphere® Application Server 5.1), на сервер, использующий SDO (такой как WebSphere Application Server 6.1). 

1.4 Теперь hx:commandExButton правильно выводит изображение

Если в v6.0 для <hx:commandExButton> был установлен тип Submit, а также задана метка и только одно фоновое изображение (например, value="submit" image="button.gif"), то выводилось только это изображение (а не изображение вместе с меткой). В версии 7.0 эта ошибка исправлена. Исправление означает, что в версии 7.0 кнопки, для которых заданы как метки, так и фоновые изображения, выводятся иначе, чем в версии 6.0.

Аналогично, если для <hx:commandExButton> был указан тип Reset, а также задано единственное фоновое изображение (или фоновое изображение и метка), то должно было выводиться только фоновое изображение, и кнопка рассматривалась как кнопка передачи на выполнение (тип кнопки игнорировался). В версии 7.0 эта ошибка исправлена. Исправление означает, что кнопки с типом Reset будут теперь сбрасывать страницу, а не передавать ее на обработку.

2.0 Известные неполадки и обходные пути

2.1 Атрибуты style и styleClass тега jspPanel больше недоступны

Атрибуты тега <jspPanel> style и styleClass больше не доступны. Атрибуты не используются для вывода компонента панели JSP.

При импорте приложения JSF, созданного в предыдущей версии этого продукта, теги <jspPanel> будут показывать ошибки. Для устранения ошибок удалите атрибуты style и styleClass из всех тегов <jspPanel> в проекте, исправив источник JSP на панели Источник.

2.2 Во время импорта проекта появляется ошибочное предупреждение

При импорте в рабочую область проектов, созданных с помощью предыдущей версии продукта, может появится сообщение о том, что поддержка Faces установлена, но для проекта не выбрана целевая среда выполнения. В некоторых случаях это предупреждение не соответствует действительности, так как среда выполнения была правильно определена после завершения процесса перехода к новой версии.   Для того чтобы проверить, выбрана ли среда выполнения, щелкните правой кнопки мыши на опции Проект > Свойства и выберите Целевые среды выполнения. Если переключатели рядом со всеми определенными серверами включены, никаких действий выполнять не требуется; в противном случае выберите один из серверов.

2.3 Несколько моделей данных клиента на одной странице

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

Если в версии 7.0 на одной странице есть несколько моделей данных клиента, созданных из одних и тех же классов EJB, то во время генерации (или повторной генерации) для второй модели ошибочно создается второй файл ecore и emap. В соответствии с руководством по переходу к новой версии, при переносе проектов данных клиента необходимо повторно генерировать модели данных клиента, что может повлиять на перенесенные проекты, страницы которых содержат несколько таких моделей. Можно использовать следующий простой сценарий:

  1. На основе EJB java.util.Date создайте два узла данных страницы, например, myDate1 и myDate2.
  2. Для каждого узла создайте модуль данных клиента с тем же именем в следующем порядке: сначала myDate1, а затем - myDate2.

Способ обхода неполадки: Для того чтобы обе модели на странице работали, удалите myDate2.ecore и myDate2.emap из пакета com.ibm.dynwdo4jsmediators и соответствующие записи - из файла OdysseyBrowserFramework.properties.

2.4 Создание портлетов, использующих Данные клиента, в V7.0+

Компонент Данные клиента создает на странице вывод JavaScript большого объема. В предыдущих выпусках JavaScript не кодировался. Это значит, что если компонент Данные клиента применяется в нескольких портлетах, использующих один и и тот же источник данных страницы, то вывод JavaScript на странице будет одинаковым для всех портлетов.

По-видимому, такое поведение, когда два портлета связаны с компонентом Данные клиента, могло быть связано с одним и тем же объектом Данные клиента (поскольку второй раздел сценария JavaScript будет заменять первый). Это, в свою очередь, позволяет двум этим портлетам взаимодействовать, когда изменение в одном из них должно представляться в обоих.

Это проблематично, если требуется, чтобы на странице было несколько портлетов, использующих Данные клиента и работающих независимо друг от друга. Если на одной и той же странице есть два портлета, использующие Данные клиента с разными источниками Данных страницы, то возникают ошибки JavaScript. Это может привести к тому, что один из портлетов не будет показан.

Для того чтобы исправить эти неполадки и разрешить портлетам Данные клиента запускаться в WSRP, необходимо закодировать переменные JavaScript Данных клиента таким образом, чтобы они были уникальны для каждого портлета. В этом случае разделы JavaScript Данных клиента будут работать независимо друг от друга.

В V7.0 все данные клиента будут кодироваться.

Если Данные клиента должны быть общими для портлетов на странице, то следует изменить файл web.xml, указав следующие параметры контекста:

    <context-param>
        <param-name>com.ibm.faces.ENCODE_DATA</param-name>
        <param-value>false</param-value>
        <description></description>
    </context-param>

Задавая для <param-value> значение false, вы удаляете код для Данных клиента.

Применение параметра Encode_Data и его влияние на компоненты Диаграмма и Дерево данных, использующие Данные страницы

Диаграмма и Дерево данных используют данные страницы, помещая на страницу объект данных XML. Данные страницы для Диаграммы и Дерева данных тесно связаны с Данными клиента для этих компонентов. По умолчанию, эти данные кодируются. Если задать в файле web.xml показанный ниже параметр <context-param>, который обычно используется для отмены кодирования Данных клиента, то для Диаграммы и Дерева данных будет удалено кодирование Данных страницы. Это не повлияет на другие компоненты, использующие данные страницы. Однако, если на странице есть два портлета, содержащие диаграмму или Дерево данных, то отсутствие кодирования данных страницы может привести к неполадке. Могут возникать ошибки JavaScript, кроме того, один из портлетов может отображаться неправильно.

Как и в случае с Данными клиента, для кодирования этих данных (что позволяет двум портлетам на странице выполняться независимо друг от друга) и для включения поддержки WSRP необходимо удалить из файла web.xml параметр <context-param> или указать для <param-value> значение true:

    <context-param>
        <param-name>com.ibm.faces.ENCODE_DATA</param-name>
        <param-value>true</param-value>
        <description></description>
    </context-param> 

2.5 Панель с закладками с высотой в процентах

Если в начале страницы указано следующее:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

то Web-браузер переходит в режим вывода страницы, соответствующий стандартам. В стандартном режиме элементы HTML и body привязаны в своему содержимому, а не заполняют окно, как это происходит в традиционном (quirks) режиме вывода страницы (режим HTML по умолчанию).

Если панель с закладками помещается на своей собственной странице с высотой, указанной в процентах, то это может привести к проблемам с высотой панели при выводе.

Для обхода этой неполадки поместите панель с закладками в контейнер с заданной высотой или измените doctype в начале страницы:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2.6 Вывод панели с закладками в режиме сторогого соответствия стандартам (Strict Mode)

В стандартном режиме существуют проблемы с выводом закладок, если указан следующий doctype:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Для исправления ситуации doctype необходимо изменить следующим образом:

     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2.7 hx:convertDateTime неправильно работает с арабскими календарями

Если установлен арабский тип календаря, то тег <hx:convertDateTime> генерирует неправильный JavaScript.   В результате функция проверки на стороне клиента, запрос на ввод, вспомогательное приложение для вывода даты и миникалендарь работают неправильно. При инициализации созданного JavaScript появляется сообщение об ошибке (либо компонент работает неправильно).

Способ обхода неполадки: Не включайте проверку на стороне клиента или запрос на ввод. Не включайте приложение для вывода даты, если с программой преобразования используется арабский календарь.

2.8 При выборе сервера WebSphere® в качестве целевой среды выполнения убедитесь, что выбран фасет проекта WebSphere

При выборе сервера WebSphere® в качестве целевой среды выполнения убедитесь, что для Web-проекта выбран фасет Web-проект WebSphere (сосуществование). 

Способ обхода неполадки: Выберите фасет на второй странице мастера динамических Web-проектов (при создании проекта) или на странице Фасеты проекта в окне Свойства проекта (если проект уже существует).   Если при создании Web-проекта, предназначенного для развертывания на сервере WebSphere, на первой странице мастера проекта из списка Конфигурации выбирается "Проект Faces" или "Динамический Web-проект с XDoclet", то автоматически будет выбран фасет Web-проект WebSphere (Сосуществование).   Для выбора этого фасета можно перейти к следующей странице мастера.   Если в списке Конфигурации выбрать пункт "<другая>", то фасет будет правильно выбран при выборе целевой среды выполнения WebSphere.

2.9 Неправильное выравнивание столбцов DataTable JWL при использовании loose.dtd и ширины столбцов в процентах

В том случае, когда в теге <hx:dataTableEx> указывается тег <hx:columnEx>, и включена вертикальная прокрутка (задан атрибут scrollSize), а ширина одного или нескольких столбцов в таблице задана в процентах, то может не выполняться выравнивание заголовков и содержимого столбцов в выведенной таблице, если doctype данной страницы интерпретируется браузером как W3C standard (а не как W3C transitional). Это может произойти, например, в том случае, когда doctype включает объявление loose.dtd.
Способ обхода неполадки: Установите фиксированную ширину столбцов (а не в процентах) или убедитесь, что doctype преобразуется в transitional doctype (например, удалите объявление loose.dtd).

2.10 В hx:panelDialog может не работать "относительное" позиционирование, если базовый тег, используемый для позиционирования, прокручен

Если для позиционирования (горизонтального или вертикального) в <hx:panelDialog> задано значение relative, а тег, используемый в качестве базового (тег, относительно которого позиционируется окно диалога), находится на прокрученной странице, то есть тег находится на экране, а страница не прокручена к началу, то при показе окна диалога он может позиционироваться неправильно (обычно слишком далеко вверху или слишком далеко слева).

Способ обхода неполадки: Если требуется относительное позиционирование, убедитесь, что базовый тег находится вблизи от начала страницы.   Если относительное позиционирование не требуется, используйте один из других типов позиционирования.

2.11 Таблицу данных с функцией выбора строк нельзя помещать в панель с включенной поддержкой AJAX

Если таблица данных (или <h:dataTable>, или <hx:dataTableEx>) помещена в панель с включенной поддержкой AJAX, и опция выбора строк включена (таблица содержит тег <hx:inputRowSelect>), то при обновлении таблицы с помощью AJAX переключатели в столбце выбора будут работать неправильно. Переключатели работают правильно, только когда таблица выводится в первый раз.

Способ обхода неполадки: В настоящее время не существует. Не помещайте таблицу в панель с включенной поддержкой AJAX.

2.12 ajaxExternalRequest может неправильно работать в Internet Explorer, если ИД панели в целевой странице не совпадает с ИД панели в исходной странице

Тег <hx:ajaxExternalRequest> может неправильно работать в браузере Internet Explorer (IE), если атрибут source, используемый для указания ИД панели, которую требуется извлечь, в целевой странице, отличается от ИД панели с тегом <hx:ajaxExternalRequest> в исходной странице. Например, <hx:panel id="panel1"><hx:ajaxExternalRequest  source="panel999" /><hx:panel>. Эта неполадка возникает только в Internet Explorer, и только в том случае, если целевая панель - это сетка, рамка или макет (панель, которая выводится как таблица HTML).

Способ обхода неполадки: Убедитесь, что идентификаторы одинаковы, или поместите целевую панель в panelGroup.

2.13 Не работает атрибут inProgresss для hx:ajaxRefreshRequest и других тегов AJAX

Атрибут inProgresss для тегов <hx:ajaxRefreshRequest>, <hx:ajaxRefreshSubmit>, <hx:ajaxExternalRequest> и <hx:inputHelperTypeahead> не работает. Задание значения для этого атрибута не приводит ни к каким результатам. Во избежание несовместимости с последующими выпусками не задавайте значение для этого атрибута.

2.14 hxinputHelperTypeahead неправильно обрабатывает поисковые значения, содержащие пробелы, символы процента и амперсанды

Если к полю ввода прикреплен тег <hx:inputHelperTypeahead>, то при вводе в это поле пробела или знаков пунктуации (таких как амперсанд и знак процента) создаваемый список возможных вариантов конструируются не будет содержать ни одного "совпадения", включающего эти символы. Например, если пользователь введет %, то не будет возвращено ни одного совпадения, даже если в используемом "словаре" есть слова, начинающиеся с символа %.

2.15 hx:panelDialog в Firefox версии 1.5.0.8 и выше может быть расположен неправильно

В Firefox, начиная с версии 1.5.0.8, изменилось поведение некоторых атрибутов. Это может привести к неправильному выводу panelDialog в Firefox. Как правило, неполадка проявляется при относительном позиционировании окна диалога, но может возникать и в других случаях, когда размер содержимого тела "меньше", чем высота окна браузера (то есть когда страница не прокручивается вертикально).

Способ обхода неполадки: Добавьте содержимое в тело (например, может быть достаточно пробела, такого как <div> с заданной высотой; это зависит от точных размеров окна браузера и содержимого страницы).

2.16 hx:pagerDeluxe обрабатывается неправильно, если значение styleClass не равно "pagerDeluxe"

<hx:pagerDeluxe> выводит неправильный текст HTML, если для styleClass указан не класс по умолчанию pagerDeluxe, а какой-то другой класс. Кнопки в пейджере всегда выводятся с именами классов, которые используют указанное в них имя класса по умолчанию.

Способ обхода неполадки: