© Copyright International Business Machines Corporation 2006. All rights reserved.
© Copyright IBM Deutschland GmbH 2006. Alle Rechte vorbehalten.
Folgendes ist veraltet und wird nicht weiter zur Verwendung empfohlen:
- Clientdaten und ihre zugeordneten Tools (wie zum Beispiel die Ansicht 'Clientdaten')
- Komponenten von Faces Client
<odc:dataGrid>
(Datenraster)<odc:webService>
(Web-Service)<odc:clientData>
(Clientdaten)<odc:clientBinder>
(Client-Binder)Von der Baumstruktur
<odc:tree>
und der Grafik<odc:graphDraw>
können jetzt Serverdaten verwendet werden.
Wenn Sie eine JSF-Anwendung einer älteren Version als Version 7 importieren, ohne die JSF-JAR-Dateien zu migrieren, und mit der Entwicklung der Anwendung fortfahren, werden Tags, die in Version 7 neu sind, nicht in die Projekt-JARs aufgenommen und sind nicht zur Laufzeit verfügbar. Stellen Sie sicher, dass JARs älterer Versionen als Version 7 migriert werden.
Das Tag
<odc:treeNodeAttr>
für die Baumstruktursteuerung verwendet unterschiedliche Werte für sein Attribut 'className', wenn es an SDO-Daten und an WDO-Daten gebunden ist. Nach der Migration eines Projekts von einem Server, der WDO verwendet (wie zum Beispiel WebSphere® Application Server 5.1) zu einem Server, der SDO verwendet (wie zum Beispiel WebSphere Application Server 6.1) besteht die einfachste Lösung darin, alle Steuerungselemente für die Baumstruktur zu löschen und neu zu erstellen.
In Version 6.0 wurde nur die Grafik wiedergegeben, nicht aber die Grafik und die Bezeichnung, wenn für
<hx:commandExButton>
der Typ Übergeben definiert und eine Bezeichnung sowie nur eine Hintergrundgrafik angegeben war (zum Beispielvalue="submit" image="button.gif"
). Dieses Problem wurde in Version 7.0 behoben. Die Korrektur impliziert, dass Schaltflächen, die sowohl eine Bezeichnung als auch eine einzelne Hintergrundgrafik besitzen, bei Verwendung von Version 7.0 anders wiedergegeben werden, als es bei Version 6.0 der Fall war.Ebenso wurde bei einer Schaltfläche nur die Grafik wiedergegeben und die Schaltfläche selbst als Schaltfläche des Typs 'Übergeben' behandelt (unabhängig vom eigentlichen Typ der Schaltfläche), wenn für
<hx:commandExButton>
der TypZurücksetzen
definiert und eine einzelne Hintergrundgrafik (oder eine Hintergrundgrafik und eine Bezeichnung) angegeben war. Dieses Problem wurde in Version 7.0 behoben. Die Korrektur bewirkt, dass Schaltflächen, für die der TypZurücksetzen
definiert wurde, jetzt den Inhalt der Seite zurücksetzen und nicht übergeben.
Die Attribute
style
undstyleClass
des Tags<jspPanel>
sind nicht mehr verfügbar. Die Attribute werden zur Darstellung der JSP-Anzeigekomponente verwendet.Wenn Sie eine JSF-Anwendung importieren, die in einer früheren Version dieses Produkt erstellt wurde, verursachen Tags des Typs
<jspPanel>
Fehlermeldungen. Zur Behebung der Fehler bearbeiten Sie die JSP-Quelle in der Sicht 'Quelle' bearbeiten, und entfernen Sie dort die Attributestyle
undstyleClass
aus allen Tags des Typs<jspPanel>
im Projekt.
Wenn Sie Projekte in den Arbeitsbereich importieren, die mit einer älteren Version des Produkts erstellt wurden, wird möglicherweise ein Dialog mit dem Inhalt angezeigt, dass die Faces-Unterstützung zwar installiert, aber keine Ziellaufzeit für das Projekt ausgewählt wurde. In manchen Fällen ist diese Warnung nicht zutreffend, und eine Laufzeit ist korrekt definiert, nachdem der Migrationsprozess abgeschlossen ist. Um zu überprüfen, ob eine Laufzeit angegeben ist, klicken Sie mit der rechten Maustaste auf Projekt > Eigenschaften, und wählen Sie Ziellaufzeiten aus. Wenn neben einem oder mehreren der definierten Server ein Markierungsfeld angezeigt wird, sind keine weiteren Schritte erforderlich. Ist dies nicht der Fall, wählen Sie einen der Server aus.
Hinweis: Diese Problemumgehung ist nicht erforderlich, wenn Clientdatenmodelle vom dem Seitendatenknoten oder von Seitendatenknoten mit dem gleichen Namen erstellt werden.
Bei Version 7.0 wird, wenn eine Seite mehrere Clientdatenmodelle enthält, die von den gleichen Bean-Klassen erstellt werden, fälschlicherweise bei der Generierung (oder Neugenerierung) eine zweite ecore-Datei und eine zweite emap-Datei für das zweite Modell erstellt. Gemäß dem Migrationshandbuch sollten bei der Migration von Clientdatenprojekten die Clientdatenmodelle neu generiert werden, was sich auf migrierte Projekte mit Seiten auswirken kann, die mehrere Clientdatenmodelle enthalten. Folgendes ist ein einfaches Szenario:
- Erstellen Sie zwei Seitendatenmodelle auf der Basis der Bean 'java.util.Date', zum Beispiel myDate1 und myDate2.
- Erstellen Sie für jedes Seitendatenmodell ein gleichnamiges Clientdatenmodell in der gleichen Reihenfolge: myDate1 und myDate2.
Problemumgehung: Damit eine Seite mit beiden Modellen funktioniert, löschen Sie myDate2.ecore und myDate2.emap aus dem Paket 'com.ibm.dynwdo4jsmediators' und package und löschen Sie die entsprechenden Einträge aus der Datei 'OdysseyBrowserFramework.properties'.
Clientdaten bewirken eine umfangreiche Ausgabe von JavaScript™ an eine Seite. In früheren Releases war JavaScript nicht verschlüsselt. Dies bedeutete, dass bei der Verwendung von Clientdaten in mehreren Portlets bei Verwendung der gleichen Seitendatenquelle die JavaScript-Ausgabe an die Seite für alle Portlets gleich war.
Dieses Verhalten, bei dem zwei Portlets an Clientdaten gebunden waren, konnte so wirken, als ob eine Bindung an das gleiche Clientdatenobjekt vorhanden wäre (da der zweite JavaScript-Abschnit den ersten überschreibt). Dies wiederum ermöglicht eine Interaktion zwischen den beiden Portlets, bei der eine Änderung in einem Portlet in beiden Portlets dargestellt wird.
Dies ist problematisch, wenn eine Seite mehrere Portlets enthalten soll, die Clientdaten verwenden, aber unabhängig voneinander funktionieren. Es treten JavaScript-Fehler auf, wenn zwei Portlets Clientdaten auf der gleichen Seite mit unterschiedlichen Seitendatenquellen verwenden. Dies kann auch zur Folge haben, dass eines der Portlets keine Wiedergabe ausführt.
Um das Problem zu beheben und zu ermögliche, dass Clientdatenportlets über WSRP ausgeführt werden können, müssen die JavaScript-Variablen für Clientdaten verschlüsselt werden, so dass sie für jedes Portlet einmalig sind. Hierdurch können die JavaScript-Abschnitte für Clientdaten unabhängig voneinander funktionieren.
In Version 7.0 werden alle Clientdaten verschlüsselt.
Wenn Portlets auf einer Seite Clientdaten gemeinsam nutzen sollen, müssen Sie 'web.xml' mit den folgenden Kontextparametern aktualisieren:
<context-param>
<param-name>com.ibm.faces.ENCODE_DATA</param-name>
<param-value>false</param-value>
<description></description>
</context-param>Durch Angabe von 'false' für <param-value> entfernen Sie die Clientdatenverschlüsselung.
Verwendung des Parameters 'Encode_Data' und ihre Auswirkung auf Komponenten der Diagramm- und Datenbaumstruktur, die Seitendaten verwenden
Die Diagramm- und Datenbaumstruktur verwendet Seitendaten, indem ein XML-Datenobjekt auf der Seite platziert wird. Seitendaten für die Diagramm- und Datenbaumstruktur sind sehr eng mit den Clientdaten für diese Komponenten verknüpft. Diese Daten werden standardmäßig verschlüsselt. Wenn Sie den unten angegebenen Parameter <context-param> in der Datei 'web.xml' angeben, was normalerweise zum Entfernen der Clientdatenverschlüsselung verwendet wird, wird hierdurch auch die Verschlüsselung von Seitendaten für die Diagramm- und Datenbaumstruktur entfernt. Hiervon sind keine anderen Komponenten betroffen, die Seitendaten verwenden. Wenn Sie die Seitendaten nicht verschlüsseln, bedeutet dies, dass sich zwei Portlets auf der Seite befinden, die beide ein Diagramm oder eine Datenbaumstruktur enthalten, was möglicherweise Probleme verursachen kann. Zu diesen Problemen zählen unter anderem JavaScript-Fehler und/oder der Umstand, dass ein Portlet nicht korrekt angezeigt wird.
Wie auch der Fall bei Clientdaten impliziert die Ausführung von zwei voneinander unabhängigen Portlets auf einer Seite bei aktivierter WSRP-Unterstützung, dass Sie folgenden <context-param> aus der Datei 'web.xml' entfernen oder <param-value> auf 'true' setzen:
<context-param>
<param-name>com.ibm.faces.ENCODE_DATA</param-name>
<param-value>true</param-value>
<description></description>
</context-param>
Folgendes wird am oberen Rand der Seite platziert:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Dies bewirkt, dass Web-Browser in den Standardmodus umschalten. Im Standardmodus passen sich die Elemente
HTML
undbody
an die Größe ihres Inhalts an und füllen nicht das Fenster aus, wie es der Fall im Quirks-Modus (Standard-HTML-Modus) ist.Wenn eine Anzeige mit Registerkarten allein auf die Seite gesetzt wird und die Höhe der Anzeige durch eine Prozentangabe definiert wurde, entstehen hierdurch Darstellungsprobleme im Zusammenhang mit der Höhe der Anzeige.
Um dieses Problem zu beheben, platzieren Sie die Anzeige mit Registerkarten in einen Container, für den eine Höhe definiert ist, oder ändern Sie den Dokumenttyp 'doctype' am Anfang der Seite in Folgendes:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Im Standardmodus treten Anzeigeprobleme mit Registerkarten auf, wenn der Dokumenttyp 'doctype' wie folgt definiert ist:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Dies kann behoben werden, indem Sie den Dokumenttyp 'doctype' in Folgendes ändern:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Das Tag
<hx:convertDateTime>
generiert kein korrektes JavaScript, wenn 'Arabisch' als Kalendertyp angegeben ist. Demzufolge funktionieren die clientseitige Prüfung, die Aufforderung für Eingaben, der Helper für die Datumauswahl und der Minikalender nicht ordnungsgemäß. Bei Intialisierung des generierten JavaScript wird ein Fehler angezeigt (oder die Komponente funktioniert nicht ordnungsgemäß).Problemumgehung: Aktivieren Sie nicht die clientseitige Prüfung oder Aufforderung für Eingaben. Aktivieren Sie nicht den Helper für die Datumsauswahl, wenn der arabische Kalender in Verbindung mit dem Converter verwendet wird.
Wenn als Ziel eine WebSphere®-Serverlaufzeit angegeben wird, stellen Sie sicher, dass die Projektfacette 'WebSphere-Web (Koexistenz)' für Ihr Webprojekt ausgewählt ist.
Problemumgehung: Wenn Sie ein Projekt erstellen, wählen Sie auf der zweiten Seite des Assistenten 'Dynamisches Webprojekt' die Facette aus. Wenn das Projekt bereits existiert, wählen Sie die Facette über die Seite 'Projektfacetten' im Dialog 'Projekteigenschaften' aus. Wenn Sie ein Webprojekt erstellen, das einen WebSphere-Server als Ziel hat und Sie auf der ersten Seite des Projektassistenten in der Dropdown-Liste die Option "Faces-Projekt" oder die Option "Dynamisches Webprojekt" (mit XDoclet) auswählen, wird die Facette 'WebSphere-Web (Koexistenz)' nicht automatisch ausgewählt. Fahren Sie auf der nächsten Seite des Assistenten fort, und wählen Sie dort diese Facette aus. Wenn Sie in der Liste 'Konfigurationen' die Option "<Angepasst>" auswählen, wird die Facette korrekt ausgewählt, wenn eine WebSphere-Laufzeit als Ziel angegeben wurde.
Bei Verwendung von
<hx:columnEx>
innerhalb von<hx:dataTableEx>
in Verbindung mit aktiviertem vertikalem Blättern (durch Angabe von 'scrollSize') werden - wenn für eine oder mehrere Spalten in der Tabelle die Breite in Form einer Prozentzahl definiert ist - in der wiedergegebenen Tabelle die Spaltenüberschriften und die Spalteninhalte möglicherweise nicht gegeneinander ausgerichtet, wenn der Dokumenttyp der Seite vom Browser als W3C-Standard (im Gegensatz zu 'W3C transitional') interpretiert wird. Dies passiert beispielsweise, wenn 'doctype' eineloose.dtd
-Deklaration enthält.
Problemumgehung: Definieren Sie für die Breite der Spalten feste Werte (d. h. verzichten Sie auf die Angabe von auf Prozentsätzen basierenden Werten) oder stellen Sie sicher, dass der Dokumenttyp 'doctype' alstransitional
aufgelöst wird (entfernen Sie z. B. die Deklaration 'loose.dtd').
Wenn für einen
<hx:panelDialog>
für die horizontale oder vertikale Positionierung der Wertrelative
angegeben wurde und der Tag, der als Bezugspunkt für die Positionierung des Dialogs verwendet wird, sich in einer geblätterten Seite befindet, so dass er angezeigt wird und die Seite nicht völlig nach oben geblättert ist, dann wird der Dialog möglicherweise inkorrekt angezeigt, d. h. zu weit oben oder zu weit links.Problemumgehung: Wenn eine relative Positionierung erforderlich ist, sollten Sie sicherstellen, dass sich der als Bezugspunkt dienende Base-Tag in Nähe des Seitenanfangs befindet. Alternativ hierzu können Sie einen anderen Positionierungstyp verwenden.
Wenn sich eine Datentabelle (
<h:dataTable>
oder<hx:dataTableEx>
) mit aktivierter Zeilenauswahl (<hx:inputRowSelect>
ist in der Tabelle enthalten) in einer Anzeige befindet, bei der AJAX aktiviert ist, funktionieren die Markierungsfelder für die Auswahlspalte nicht korrekt, wenn die Tabelle erneut über AJAX abgerufen wird. Dies funktioniert nur das erste (und einzige) Mal der Wiedergabe.Problemumgehung: Zu diesem Problem gibt es derzeit keine Problemumgehung. Platzieren Sie die Tabelle nicht in eine Anzeige mit AJAX-Aktivierung.
<hx:ajaxExternalRequest>
funktioniert in Internet Explorer (IE) möglicherweise nicht korrekt, wenn das Quellenattribut, mit dem die ID der abzurufenden Anzeige angegeben wird, nicht mit der ID der Anzeige übereinstimmt, mit der<hx:ajaxExternalRequest>
in der Quellenseite verbunden ist. Beispiel:<hx:panel id="panel1"><hx:ajaxExternalRequest source="panel999" /><hx:panel>
. Das Problem tritt nur in IE und nur dann auf, wenn es sich bei der Zielanzeige um ein Raster, einen Rahmen oder ein Layout handelt (d. h. eine Anzeige, die als HTML-Tabelle dargestellt wird).Problemumgehung: Stellen Sie sicher, dass die IDs übereinstimmen, oder schließen Sie die Zielanzeige in 'panelGroup' ein.
Das Attribut
inProgresss
funktioniert für<hx:ajaxRefreshRequest>
,<hx:ajaxRefreshSubmit>
,<hx:ajaxExternalRequest>
und<hx:inputHelperTypeahead>
nicht. Die Festlegung eines Wertes für dieses Attribut hat keine Wirkung. Um die Kompatibilität mit künftigen Releases sicherzustellen, geben Sie diesen Wert nicht an.
Wenn
<hx:inputHelperTypeahead>
an ein Eingabefeld angehängt ist und in dieses Eingabefeld ein Leerzeichen und oder Interpunktionszeichen wie Et-Zeichen oder Prozentzeichen eingegeben werden, dann enthält die Liste der erstellten Vorschläge keine "Übereinstimmungen", die diese Zeichen enthalten. Wenn ein Benutzer beispielsweise '%' eingibt, werden keine Übereinstimmung zurückgegeben, selbst wenn das "Wörterverzeichnis" Wörter enthält, die mit '%' beginnen.
Eine Änderung des Verhaltens mancher HTML-DOM-Attribute ab einschließlich Firefox Version 1.5.0.8 kann dazu führen, dass
panelDialog
bei der Wiedergabe in Firefox nicht korrekt positioniert wird. Das Problem tritt am häufigsten dann auf, wenn für den Dialog eine relative Positionierung festgelegt wurde, aber kann auch dann auftreten, wenn die Größe des Hauptteilinhalts "kleiner als" die Höhe des Browserfensters ist (d. h. die Seite nicht vertikal verschiebbar ist).Problemumgehung: Durch Hinzufügen von Inhalten zum Hauptteil (selbst wenn es sich dabei um Leerraum wie bei <div> mit festgelegter Höhe handelt) mit dem Effekt, dass die vertikale Schiebeleiste auf der Seite stets vorhanden ist, lässt sich dieses Problem umgehen, wobei jedoch hierbei die genauen Abmessungen des Browserfensters und -inhalts zu berücksichtigen sind.
<hx:pagerDeluxe>
gibt nicht die korrekte HTML-Markup-Formatierung wieder, wenn für die Darstellungsklasse 'styleClass' eine andere Klasse als die StandardklassepagerDeluxe
definiert ist. Die Schaltflächen im Pager werden immer mit Klassennamen wiedergegeben, die den Standardklassennamen enthalten.Problemumgehung:
- Ändern Sie den Klassennamen in keinen anderen Namen als 'pagerDeluxe'.
- Passen Sie das verwendete CSS so an, dass die Klassennamen berücksichtigt werden, die auf den Schaltflächen wiedergegeben werden, wenn ein anderer Klassenname verwendet wird.