© Copyright International Business Machines Corporation 2006. Wszelkie prawa zastrzeżone. Ograniczone prawa na rzecz rządu Stanów Zjednoczonych - używanie produktów, tworzenie ich duplikatów oraz ujawnianie informacji o nich podlega zastrzeżeniom zawartym w umowie GSA ADP Schedule zawartej z firmą IBM® Corp.
Przedstawione poniżej składniki są już nieaktualne i ich używanie nie jest zalecane:
- Składnik Client Data i powiązane z nim narzędzia (takie jak widok Client Data)
- Składniki Faces Client
<odc:dataGrid>
(siatka danych)<odc:webService>
(usługa Web Service)<odc:clientData>
<odc:clientBinder>
Elementy Tree
<odc:tree>
i Chart<odc:graphDraw>
mogą obecnie korzystać ze składnika Server Data.
W przypadku importowania aplikacji JSF utworzonej w wersji wcześniejszej niż wersja 7 produktu bez przeprowadzania migracji plików JAR JSF i kontynuowania tworzenia tej aplikacji, znaczniki, które pojawiły się w wersji 7, nie zostaną dołączone do plików JAR projektu i nie będą dostępne w czasie uruchamiania. Należy się upewnić, czy została przeprowadzona migracja plików JAR utworzonych w wersjach wcześniejszych niż wersja 7.
Znacznik elementu sterującego drzewa
<odc:treeNodeAttr>
korzysta z innych wartości atrybutu className przy powiązaniu z danymi SDO i z innych przy powiązaniu z danymi WDO. Po migracji projektu z serwera korzystającego z technologii WDO (takiego jak WebSphere® Application Server 5.1) do jednego z serwerów korzystających z technologii SDO (takich jak WebSphere Application Server 6.1) najprostszym sposobem poprawienia tego błędu jest usunięcie i ponowne utworzenie wszystkich elementów sterujących drzewa.
W wersji 6.0, jeśli w znaczniku
<hx:commandExButton>
typ był ustawiony na Wprowadź, była ustawiona etykieta i tylko jeden obraz tła (na przykładvalue="submit" image="button.gif"
), renderowany był tylko obraz (a nie obraz i etykieta). Ten problem został naprawiony w wersji 7.0. Poprawka oznacza, że przyciski zawierające zarówno etykietę, jak i pojedynczy obraz tła, będą w wersji 7.0 wyświetlane w inny sposób niż ma to miejsce w wersji 6.0.Analogicznie, jeśli w znaczniku
<hx:commandExButton>
typ był ustawiony naResetuj
oraz był pojedynczy obraz tła (lub obraz tła i etykieta), renderowany był tylko obraz, a przycisk był traktowany jak przycisk wprowadzania (typ przycisku był ignorowany). Ten problem został naprawiony w wersji 7.0. Poprawka oznacza, że przyciski typuReset
będą teraz resetowały stronę, a nie ją wprowadzały.
Atrybuty
style
istyleClass
znacznika<jspPanel>
nie są już dostępne. Atrybuty nie są wykorzystywane do renderowania składnika panelu JSP.W przypadku importowania aplikacji JSF utworzonej w poprzedniej wersji tego produktu, w znacznikach
<jspPanel>
zostaną wyświetlone błędy. Aby poprawić błędy, należy usunąć atrybutystyle
istyleClass
ze wszystkich znaczników<jspPanel>
w projekcie, edytując plik źródłowy JSP w widoku Źródło.
Podczas importowania do obszaru roboczego projektów utworzonych za pomocą poprzedniej wersji produktu może zostać wyświetlone wywoływane okno dialogowe zawierające informację, że została zainstalowana obsługa Faces, ale dla projektu nie zostało wybrane żadne docelowe środowisko wykonawcze. W niektórych przypadkach to ostrzeżenie jest nieadekwatne, a środowisko wykonawcze będzie poprawnie zdefiniowane po zakończeniu procesu migracji. Aby sprawdzić, czy środowisko wykonawcze jest skonfigurowane, kliknij prawym przyciskiem myszy opcje: Projekt > Właściwości i wybierz opcję Docelowe środowiska wykonawcze. Jeśli obok dowolnego ze zdefiniowanych serwerów zaznaczone jest pole wyboru, dalsze działanie nie jest wymagane. W przeciwnym przypadku należy wybrać jeden z serwerów.
Uwaga: To obejście nie jest wymagane, jeśli modele ze składnikami Client Data tworzone są z tego samego węzła danych strony lub z węzłów danych strony o tej samej nazwie.
W wersji 7.0, gdy na stronie jest wiele modeli danych klienta utworzonych z tych samych klas komponentów bean, podczas generowania (lub ponownego generowania) zostaną błędnie utworzone drugi plik ecore i emap dla drugiego modelu. Zgodnie z podręcznikiem migracji podczas migrowania projektów danych klienta modele ze składnikami Client Data powinny być generowane ponownie, co może wpłynąć na migrowane projekty ze stronami zawierającymi więcej niż jeden model ze składnikiem Client Data. Prosty scenariusz jest następujący:
- Utwórz dwie strony danych dla komponentu bean java.util.Date, na przykład mojeDane1 i mojeDane2.
- Dla danych każdej strony utwórz model danych klienta o tej samej nazwie w tej kolejności: najpierw mojeDane1, a potem mojeDane2.
Obejście: Aby zapewnić działanie strony dla obu modeli, należy usunąć pliki mojeDane2.ecore i mojeDane2.emap z pakietu com.ibm.dynwdo4jsmediators i odpowiednie wpisy w pliku OdysseyBrowserFramework.properties.
Składniki Client Data wyprowadzają na stronę dużą ilość kodu JavaScript™. W poprzednich wersjach skrypty JavaScript nie były kodowane. Oznacza to, że jeśli składnik Client Data był wykorzystywany w wielu portletach z użyciem tego samego źródła danych strony, dane wyjściowe JavaScript na stronie były takie same dla wszystkich portletów.
Takie zachowanie, gdzie dwa portlety są powiązane ze składnikiem Client Data, może objawiać się wiązaniem do tego samego obiektu Client Data (druga sekcja skryptu JavaScript nadpisze pierwszą). To z kolei umożliwia interakcję dwóch portletów, gdzie zmiana w jednym z nich będzie reprezentowana w obu.
Jest to problematyczne, jeśli na stronie powinno być wiele portletów używających obiektów Client Data i działających niezależnie od siebie. Jeśli na tej samej stronie znajdują się dwa portlety korzystające ze składnika Client Data z różnymi źródłami danych strony, wystąpią błędy JavaScript. Może to również spowodować brak wyświetlania grafiki jednego z portletów.
Aby naprawić te problemy i umożliwić działanie portletów Client Data zgodnie ze specyfikacją WSRP, zmienne JavaScript składnika Client Data muszą być kodowane, tak aby były unikalne dla każdego portletu. Umożliwia to sekcjom JavaScript składnika Client Data pracować niezależnie od siebie.
W wersji 7.0 wszystkie dane klienta będą kodowane.
Jeśli składnik Client Data ma być współużytkowany między portletami na stronie, należy zaktualizować plik web.xml, podając następujące parametry kontekstu:
<context-param>
<param-name>com.ibm.faces.ENCODE_DATA</param-name>
<param-value>false</param-value>
<description></description>
</context-param>Ustawienie wartości parametru <param-value> na false powoduje usunięcie kodowania obiektów Client Data.
Korzystanie z parametru Encode_Data i jego wpływ na komponenty Wykres i Drzewo danych korzystające z danych strony
Składniki Wykres i Drzewo danych używają danych strony, wstawiając na stronę obiekt danych XML. Obiekt Page Data dla składników Wykres i Drzewo danych jest ściśle powiązany z obiektem Client Data dla tych składników. Domyślnie dane te są zakodowane. Jeśli w pliku web.xml zostanie ustawiony parametr <context-param> przedstawiony poniżej, który zazwyczaj wykorzystywany jest do usuwania kodowania składnika Client Data, spowoduje to także usunięcie kodowania danych strony dla komponentów Wykres Drzewo danych. Nie ma to wpływu na żadne inne składniki korzystające z danych strony. Pozostawienie danych strony bez kodowania, gdy na stronie znajdują się dwa portlety zawierające komponenty Wykres lub Drzewo danych, może spowodować problemy. Te błędy obejmują błędy JavaScript i/lub brak możliwości poprawnego wyświetlenia jednego z portletów.
Podobnie jak w przypadku składnika Client Data, aby zakodować te dane, umożliwiając niezależne działanie na stronie dwóch portletów i obsługę WSRP, z pliku web.xml należy usunąć poniższy parametr <context-param> lub ustawić parametr <param-value> na wartość true:
<context-param>
<param-name>com.ibm.faces.ENCODE_DATA</param-name>
<param-value>true</param-value>
<description></description>
</context-param>
U góry strony umieszczany jest następujący kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Powoduje to przejście przeglądarek WWW w tryb standardowy. W trybie standardowym elementy
HTML
ibody
są przypisane do swojej treści, nie zapełniają okna, tak jak w trybie quirks (domyślnym trybie HTML).Gdy na stronie umieszczony jest autonomiczny panel z zakładkami, którego wysokość ustalona jest procentowo, spowoduje to problem z wyświetlaniem związany z wysokością panelu.
Aby naprawić ten problem, panel z zakładkami należy umieścić w kontenerze z ustawioną wysokością lub zmienić deklarację doctype znajdującą się u góry strony na:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Występują problemy z wyświetlaniem zakładek w trybie standardowym, gdy parametr doctype jest ustawiony na:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Można to poprawić, zmieniając deklarację doctype na:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Znacznik
<hx:convertDateTime>
nie generuje poprawnego kodu JavaScript, gdy kalendarz jest ustawiony na typ arabski. W wyniku tego niepoprawnie działa sprawdzanie poprawności po stronie klienta, podpowiadanie danych wejściowych, komponent pomocy przy wybieraniu daty oraz mały kalendarz. Po zainicjowaniu wygenerowanego skryptu JavaScript jest wyświetlany błąd (lub składnik nie działa poprawnie).Obejście: Nie należy włączać sprawdzenia poprawności lub monitowania po stronie klienta. Nie należy włączać elementu pomocniczego pola wyboru daty, jeśli kalendarz arabski jest używany z konwerterem.
Podczas określania docelowego środowiska wykonawczego serwera WebSphere® należy się upewnić, że dla danego projektu WWW został wybrany aspekt WWW WebSphere (Współistnienie).
Obejście: Aspekt należy wybrać podczas tworzenia projektu na drugiej stronie kreatora dynamicznego projektu WWW lub za pośrednictwem strony Aspekty projektu okna dialogowego Właściwości projektu, jeśli projekt już istnieje. Podczas tworzenia projektu WWW przeznaczonego dla serwera WebSphere, jeśli z listy rozwijanej Konfiguracje na pierwszej stronie kreatora projektu zostanie wybrana opcja "Projekt Faces" lub "Dynamiczny projekt WWW z narzędziem XDoclet", aspekt WWW WebSphere (Współistnienie) nie zostanie wybrany automatycznie. Można przejść do następnej strony kreatora, aby wybrać ten aspekt. Jeśli z listy Konfiguracje zostanie wybrana opcja "<custom>", aspekt zostanie poprawnie wybrany podczas określania miejsca docelowego środowiska wykonawczego WebSphere.
Jeśli jedna lub więcej kolumn w tabeli ma ustawioną szerokość w procentach podczas korzystania ze znacznika
<hx:columnEx>
wewnątrz znacznika<hx:dataTableEx>
przy włączonej opcji przewijania pionowego (ustawiony jest parametr scrollSize), w wyświetlanej tabeli nagłówki kolumn oraz zawartość kolumn może nie być wyrównana, gdy deklaracja doctype strony zostanie zinterpretowana przez przeglądarkę jako typ W3C standard (w przeciwieństwie do typu W3C transitional). Zdarzy się to na przykład, jeśli parametr doctype zawiera deklaracjęloose.dtd
.
Obejście: Należy ustalić stałą szerokość kolumny (nie w oparciu o wartości procentowe) lub upewnić się, że deklaracja doctype jest rozpoznawana jako deklaracja doctype typutransitional
(na przykład przez usunięcie deklaracji loose.dtd).
Jeśli pozycjonowanie w znaczniku
<hx:panelDialog>
(poziome lub pionowe) jest ustawione na wartośćrelative
, a znacznik używany jako podstawa do pozycjonowania (znacznik, względem którego pozycjonowane jest okno dialogowe) znajduje się na stronie, która jest przewijana w taki sposób, że znacznik znajduje się na ekranie, a strona nie jest przewijana do góry, wyświetlane okno dialogowe może być pozycjonowane niepoprawnie (zazwyczaj umieszczane zbyt wysoko lub zbyt daleko po lewej).Obejście: Jeśli wymagane jest pozycjonowanie względne, znacznik podstawowy powinien się znajdować niedaleko górnej krawędzi strony. Alternatywnie można użyć innego typu pozycjonowania.
Jeśli tabela danych (znacznik
<h:dataTable>
lub<hx:dataTableEx>
) znajduje się na panelu z włączoną obsługą technologii AJAX oraz ma włączoną opcję wybierania wierszy (w tabeli znajduje się znacznik<hx:inputRowSelect>
), pola wyboru w kolumnie wybierania nie będą działały poprawnie, gdy tabela zostanie ponownie pobrana za pośrednictwem technologii AJAX. Będzie działała poprawnie tylko podczas pierwszego wyświetlenia.Obejście: Aktualnie nie jest znane żadne obejście tego problemu. Nie należy umieszczać tabeli na panelu z włączoną obsługą technologii AJAX.
Znacznik
<hx:ajaxExternalRequest>
może nie działać poprawnie w przeglądarce Internet Explorer (IE), jeśli atrybut źródłowy jest używany do określania identyfikatora panelu do pobrania na panelu docelowym i różni się od identyfikatora panelu, do którego przyłączony jest znacznik<hx:ajaxExternalRequest>
na stronie źródłowej. Na przykład:<hx:panel id="panel1"><hx:ajaxExternalRequest source="panel999" /><hx:panel>
. Problem występuje tylko w przeglądarce IE i tylko jeśli panel docelowy jest siatką, polem lub układem (panelem, który jest wyświetlany w formie tabeli HTML).Obejście: Należy się upewnić, że identyfikatory są takie same lub umieścić panel docelowy w obiekcie panelGroup.
Nie działa atrybut
inProgresss
znaczników<hx:ajaxRefreshRequest>
,<hx:ajaxRefreshSubmit>
,<hx:ajaxExternalRequest>
i<hx:inputHelperTypeahead>
. Ustawienie wartości tego atrybutu nie daje żadnego efektu. Aby zapewnić zgodność z przyszłymi wersjami, nie należy ustawiać jego wartości.
Gdy znacznik
<hx:inputHelperTypeahead>
jest dołączony do pola wejściowego, jeśli znak spacji i/lub znaki interpunkcyjne, takie jak znak ampersand i procent, zostaną wprowadzone do tego pola, skonstruowana lista sugestii nie będzie zawierała "dopasowań" zawierających te znaki. Jeśli na przykład użytkownik wpisze %, nie zostaną zwrócone żadne dopasowania, nawet jeśli w używanym "słowniku" istnieją słowa rozpoczynające się od znaku %.
Zmiana zachowania niektórych atrybutów DOM HTML od wersji 1.5.0.8 programu Firefox może powodować niepoprawne umieszczenie okna dialogowego (
panelDialog
) podczas jego renderowania w programie Firefox. Problem występuje najczęściej, gdy okno dialogowe jest pozycjonowane względnie, ale może wystąpić też w innych przypadkach, gdy wielkość treści jest "mniejsza niż" wysokość okna przeglądarki (to znaczy, gdy strony nie można przewijać w pionie).Obejście: Dodanie treści (nawet pustej, takiej jak obszar <div> z ustawioną wysokością), tak aby pionowy pasek przewijania był zawsze aktywny, może pomóc obejść ten problem (zależy to od dokładnych wymiarów okna przeglądarki oraz treści).
Znacznik
<hx:pagerDeluxe>
nie wyświetla poprawnie kodu HTML, jeśli atrybut styleClass ma wartość inną niż domyślna klasapagerDeluxe
. Przyciski w programie stronicującym zawsze będą wyświetlane z nazwami klas, które korzystają z domyślnej nazwy klasy.Sposób obejścia:
- Nie zmieniaj nazwy klasy inną niż pagerDeluxe.
- Jeśli używana jest inna nazwa klasy, należy dostosować używany arkusz CSS, aby uwzględnić nazwy klas, które są wyświetlane na przyciskach.