Poznámky k vydání JavaServer Faces a nástrojů ODC

© Copyright International Business Machines Corporation 2006. Všechna práva vyhrazena. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.

Poznámky k vydání

1.0 Omezení
   1.1 Komponenty klienta Faces a data klienta jsou znehodnocené
   1.2 Migrace aplikací pre-V7 JSF
   1.3 Modifikace stromu při přesunu z WDO na SDO
   1.4 hx:commandExButton nyní vykresluje obraz správně
2.0 Známé problémy a náhradní řešení
   2.1 Atributy příznaku jspPanel style a styleClass již nejsou dostupné
   2.2 Objevuje se nepřesné dialogové okno s varováním během importů projektů
   2.3 Mnoho klientských datových modelů na stránku
   2.4 Sestavení portletů, které používají klientská data ve V7.0+
   2.5 Tabulkový panel s výškou jako počtem procent
   2.6 Karty tabulkového panelu ve striktním režimu
   2.7 hx:convertDateTime nepracuje správně s arabskými kalendáři
   2.8 Při zaměření běhové komponenty WebSphere se ujistěte, že je vybrána fazeta projektu WebSphere
   2.9 Zarovnání sloupce JWL DataTable není správné při použití sloupců loose.dtd a procento-šířka
   2.10 V hx:panelDialog, "relativní" umístění nemusí fungovat, pokud je posouvána základní značka použitá pro umístění
   2.11 Tabulku dat s povoleným výběrem řádek nelze umístit do panelu, který je povolen pro AJAX
   2.12 ajaxExternalRequest nemusí fungovat správně v IE, pokud ID panelu na cílové stránce neodpovídá ID panelu na zdrojové stránce
   2.13 Atribut inProgresss pro hx:ajaxRefreshRequest a další značky AJAX nefunguje
   2.14 hxinputHelperTypeahead správně neobslouží vyhledávané hodnoty s mezerami, symboly procent a ampersandy
   2.15 hx:panelDialog může být nesprávně umístěn v prohlížeči Firefox verze 1.5.0.8 nebo novější
   2.16 hx:pagerDeluxe nevykresluje správně, pokud styleClass není "pagerDeluxe"

1.0 Omezení

1.1 Komponenty klienta Faces a data klienta jsou znehodnocené

Následující bylo znehodnoceno a nedoporučuje se používat:

Strom <odc:tree> a graf <odc:graphDraw> mohou používat data serveru.

1.2 Migrace aplikací pre-V7 JSF

Pokud importujete aplikaci pre-V7 JSF bez migrování souborů JSF JAR a budete pokračovat ve vývoji aplikace, příznaky, které jsou nové v V7, nebudou zahrnuté v souborech JAR projektů a nebudou dostupné v době běhu programu.  Ujistěte se, že migrujete pre-V7 JARS.

1.3 Modifikace stromu při přesunu z WDO na SDO

Značka pro řízení stromu <odc:treeNodeAttr> používá různé hodnoty pro atribut className, když se váže k datům SDO a datům WDO. Poté, co migrujete projekt ze serveru, který používá WDO (jako je WebSphere® Application Server 5.1), na server, který používá SDO (jako je WebSphere Application Server 6.1), nejjednodušším způsobem opravy je odebrat a znovu vytvořit všechny ovládací prvky stromu.  

1.4 hx:commandExButton nyní vykresluje obraz správně

Ve verzi v6.0, pokud měl <hx:commandExButton> nastaven typ na Zadat a měl štítek a pouze jeden obraz pozadí (například: value="submit" image="button.gif"), vykreslil se pouze obraz (ne obraz a štítek). Tento problém byl vyřešen ve verzi 7.0. Oprava znamená, že tlačítka, která mají štítek i obraz pozadí, se vykreslí jinak při použití v7.0 než s verzí 6.0.

Podobně, pokud byl u tlačítka <hx:commandExButton> nastaven typ na Reset a pouze jeden obraz pozadí (nebo obraz pozadí a štítek), vykreslil se pouze obraz a s tlačítkem se zacházelo jako s tlačítkem pro zadání (typ tlačítka se ignoroval). Tento problém byl vyřešen ve verzi 7.0. Oprava znamená, že tlačítka označená typem nastaveným na Reset nyní resetují stránku, místo aby ji zadala.

2.0 Známé problémy a náhradní řešení

2.1 Atributy příznaku jspPanel style a styleClass již nejsou dostupné

Atributy příznaků <jspPanel> style a styleClass již nejsou dostupné. Atributy nebudou použité pro poskytnutí panelové komponenty JSP.

Pokud importujete aplikaci JSF vytvořenou v předchozí verzi tohoto produktu, příznaky <jspPanel> zobrazí chyby. Abyste chyby vyřešili, odeberte atributy style a styleClass ze všech příznaků <jspPanel> v projektu tak, že upravíte zdroj JSP v zobrazení Zdroj.

2.2 Objevuje se nepřesné dialogové okno s varováním během importů projektů

Pokud importujete do pracovního prostoru projekty, které byly vytvořeny s pomocí předchozí verze produktu, možná uvidíte dialogové okno, které vám sdělí, že byla nainstalována podpora Faces, ale žádná cílová běhová komponenta nebyla pro projekt vybrána. V některých případech není toto varování na místě a běhová komponenta bude správně definována po dokončení procesu migrace.  Abyste zkontrolovali, zda je běhová komponenta nastavena, klepněte pravým tlačítkem myši na Projekt > Vlastnosti a vyberte Zaměřené běhové komponenty. Pokud se u libovolných definovaných serverů objeví zaškrtávací políčko, nevyžaduje se žádná další akce, jinak vyberte jeden server.

2.3 Mnoho klientských datových modelů na stránku

Poznámka: toto náhradní řešení se nevyžaduje, kde se klientské datové modely vytvářejí ze stejného uzlu dat na stránce nebo z uzlů dat na stránce se stejným názvem.

Ve v7.0, když existuje více klientských datových modelů na stránce, vytvořených ze stejných tříd objektů bean, druhý soubor ecore a emap se chybně vytvoří pro druhý model při generování (nebo opakovaném generování). Podle příručky pro migraci, když migrujete klientské datové projekty, klientské datové modely by se měly znovu vygenerovat, takže se projeví dopad na migrované projekty se stránkami obsahujícími více než jeden klientský datový model. Jednoduchý scénář je následující:

  1. Vytvořte dvoje data na stránce založená na objektu bean java.util.Date, například myDate1 a myDate2.
  2. Pro každou stránku s daty vytvořte klientský datový model se stejným názvem, v pořadí: myDate1 pak myDate2.

Náhradní řešení: Aby stránka fungovala s oběma modely, odstraňte myDate2.ecore a myDate2.emap z balíku com.ibm.dynwdo4jsmediators a odpovídající záznamy v souboru OdysseyBrowserFramework.properties.

2.4 Sestavení portletů, které používají klientská data ve V7.0+

Klientská data nechají vytvořit velké množství výstupu JavaScript na stránku. V předchozích vydáních nebyl JavaScript zakódován. To znamenalo, že pokud jste používali klientská data ve více portletech, s pomocí stejného zdroje dat stránky, výstup JavaScript na stránku byl stejný pro všechny portlety.

Toto chování, kde se dva portlety vážou na klientská data, by mohlo vypadat, jako že se váže ke stejnému objektu klientských dat (protože druhá sekce JavaScriptu přepíše první). To postupně umožňuje portletům být v interakci, kdy změna jednoho bude znázorněna v obou.

To je problematické, chcete-li mít na stránce více portletů, které používají klientská data pracující nezávisle na sobě. Chyby JavaScriptu se vyskytují, když máte dva portlety používající klientská data na stejné stránce s různými zdroji dat stránky. To může také způsobit, že se jeden z portletů nevykreslí.

Abyste odstranili tyto problémy a umožnili spuštění portletů klientských dat přes WSRP, musí být proměnné klientských dat JavaScript zakódovány, aby byly jedinečné pro každý portlet. To umožní sekcím JavaScript klientských dat fungovat nezávisle na sobě.

Ve verzi V7.0 budou všechny klientská data kódována.

Pokud chcete sdílet klientská data mezi portlety na stránce, budete muset aktualizovat soubor web.xml následujícími kontextovými parametry:

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

Nastavením <param-value> na false odstraníte kódování klientských dat.

Použití parametru Encode_Data a jeho efekt na komponenty Graf a Datový strom používající data na stránce

Graf a Datový strom používají data na stránce vložením datového objektu XML na stránku. Data na stránce pro Graf a Datový strom jsou těsně propojena s klientskými daty pro tyto komponenty. Předvoleně jsou tato data zakódována. Pokud nastavíte níže uvedený parametr <context-param> v souboru web.xml, který se běžně používá pro odstranění kódování klientských dat, bude také odstraněno kódování dat na stránce pro Graf a Datový strom. Žádné jiné komponenty používající data na stránce nebudou ovlivněny. Ponechání dat na stránce bez kódování, což znamená mít dva portlety na stránce, když oba obsahují graf nebo datový strom, může způsobit problémy. Tyto chyby zahrnují chyby JavaScript a/nebo se jeden nebo oba portlety nezobrazí správně.

Jako s klientskými daty pro kódování těchto dat, což umožní běh dvou portletů na stránce nezávisle na sobě a umožnění podpory WSRP, budete muset odstranit následující parametr <context-param> ze souboru web.xml nebo nastavit <param-value> na true:

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

2.5 Tabulkový panel s výškou jako počtem procent

Tento text je umístěn v horní části stránky:

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

To způsobí, že webové prohlížeče přejdou do standardního režimu. Ve standardním režimu prvky HTML a body vybírají obsah a nevyplňují okno, jako se to děje v předvoleném HTML režimu (režim quirks).

Když je tabulkový panel umístěn na stránku s výškou nastavenou na počet procent, způsobí to zobrazení problémů s výškou okna.

Abyste problém opravili, umístěte tabulkový panel do kontejneru, který má nastavenou výšku, nebo změňte deklaraci DOCTYPE v horní části stránky na:

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

2.6 Karty tabulkového panelu ve striktním režimu

Existují problémy se zobrazením karet ve standardních režimech, když je deklarace DOCTYPE nastavena na:

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

To napraví změna deklarace DOCTYPE na:

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

2.7 hx:convertDateTime nepracuje správně s arabskými kalendáři

Značka <hx:convertDateTime> negeneruje správný JavaScript, když je typ kalendáře nastaven na arabský.  V důsledku, ověření na straně klienta, výzvy na vstupu, pomocník při výběru dat a mini kalendář, nefungují správně. Když je generovaný JavaScript inicializován, zobrazí se chyba (nebo komponenta nefunguje správně).

Náhradní řešení: Nezapínejte ověření na straně klienta nebo zasílání výzev. Nezapínejte pomocníka pro výběr dat, pokud se arabský kalendář používá s konvertorem.

2.8 Při zaměření běhové komponenty WebSphere® se ujistěte, že je vybrána fazeta projektu WebSphere

Při zaměření běhové komponenty serveru WebSphere® se ujistěte, že je vybrána fazeta projektu webu WebSphere (Koexistence) pro daný webový projekt.  

Náhradní řešení: Vyberte fazetu na druhé stránce průvodce dynamickým webovým projektem při vytváření projektu, nebo přes stránku Fazety projektu dialogu Vlastnosti projektu, pokud projekt již existuje.  Při vytváření webového projektu zaměřeného na server WebSphere, pokud vyberete "Projekt Faces" nebo "Dynamický webový projekt s XDoclet" z rozbalovacího seznamu Konfigurace na první stránce průvodce projektem, webová fazeta WebSphere (koexistence) nebude automaticky vybrána.  Můžete pokračovat na další stránku průvodce pro výběr této fazety.  Pokud vyberete "<vlastní>" ze seznamu konfigurace, fazeta bude řádně vybrána při zaměření webové komponenty WebSphere.

2.9 Zarovnání sloupce JWL DataTable není správné při použití sloupců loose.dtd a procento-šířka

Používáte-li <hx:columnEx> v <hx:dataTableEx> a je povoleno vertikální posouvání (nastaveno scrollSize), pokud jeden nebo více sloupců tabulky má nastavenu šířku, aby byla založená na procentech, ve vykreslené tabulce se hlavičky sloupců a obsah sloupců spolu nemusí zarovnat, pokud je deklarace DOCTYPE stránky interpretována prohlížečem jako standardní W3C (oproti přechodnému W3C). K tomu například dojde, pokud DOCTYPE obsahuje deklaraci loose.dtd.
Náhradní řešení: Upevněte šířky sloupců (ne založené na procentech) nebo se ujistěte, že deklarace DOCTYPE rozliší přechodný typ dokumentu (například odstraňte deklaraci loose.dtd).

2.10 V hx:panelDialog, "relativní" umístění nemusí fungovat, pokud je posouvána základní značka použitá pro umístění

Pokud je v <hx:panelDialog> umístění (horizontální nebo vertikální) nastaveno na relativní a značka použitá jako základ pro umístění (značka, k níž je dialog relativně umístěn) je na stránce, která se posouvá tak, že značka je na obrazovce a stránka není posunutá na začátek, když se dialog zobrazí, může být nesprávně umístěn (obvykle příliš nahoře nebo příliš vlevo).

Náhradní řešení: Pokud se vyžaduje relativní umístění, ujistěte se, že základní značka je v horní části stránky.  Jinak použijte jeden z dalších typů umístění.

2.11 Tabulku dat s povoleným výběrem řádek nelze umístit do panelu, který je povolen pro AJAX

Pokud je tabulka dat (buď <h:dataTable> nebo <hx:dataTableEx>) v panelu, který je aktivován pro AJAX a povolen pro výběr řádků (<hx:inputRowSelect> je zahrnuto v tabulce), zaškrtávací pole ve sloupci pro výběr nebudou řádně fungovat, když se tabulka znovu zachytí přes AJAX. Budou řádně fungovat při prvním (pouze) vykreslení.

Náhradní řešení: Pro tento problém momentálně neexistuje náhradní řešení. Neumisťujte tabulku do panelu povoleného pro AJAX.

2.12 ajaxExternalRequest nemusí fungovat správně v IE, pokud ID panelu na cílové stránce neodpovídá ID panelu na zdrojové stránce

<hx:ajaxExternalRequest> nemusí fungovat správně v prohlížeči Internet Explorer (IE), pokud se zdrojový atribut použitý k uvedení ID panelu, které se načte na cílové stránce, liší od ID panelu, k němuž je <hx:ajaxExternalRequest> připojen na zdrojové stránce. Například, <hx:panel id="panel1"><hx:ajaxExternalRequest  source="panel999" /><hx:panel>. Problém nastává pouze v IE a pouze tehdy, když je cílovým panelem mřížka, políčko nebo rozvržení (panel, který se vykreslí jako tabulka HTML).

Náhradní řešení: Ujistěte se, že ID jsou stejné, nebo zabalte cílový panel ve skupině panelGroup.

2.13 Atribut inProgresss pro hx:ajaxRefreshRequest a další značky AJAX nefunguje

Atribut inProgresss pro <hx:ajaxRefreshRequest>, <hx:ajaxRefreshSubmit>, <hx:ajaxExternalRequest> a <hx:inputHelperTypeahead> nefunguje. Nastavení hodnoty tohoto atributu nemá žádný efekt. Abyste zajistili kompatibilitu pro budoucí vydání, nenastavujte hodnotu.

2.14 hxinputHelperTypeahead správně neobslouží vyhledávané hodnoty s mezerami, symboly procent a ampersandy

Když je <hx:inputHelperTypeahead> připojen ke vstupnímu poli, pokud jsou v poli zadány znaky mezery a/nebo znaky interpunkce, jako je ampersand a procento, seznam návrhů, které se vytvoří, nebude obsahovat žádné "shody" obsahující tyto znaky. Například, pokud uživatel zadá %, žádné shody se nevrátí, i když existují slova v použitém "slovníku", která začínají na %.

2.15 hx:panelDialog může být nesprávně umístěn v prohlížeči Firefox verze 1.5.0.8 nebo novější

Změna chování některých atributů HTML DOM počínaje verzí Firefox 1.5.0.8 může vyústit v to, že se panelDialog správně neumístí při vykreslení v prohlížeči Firefox. Problém se nejčastěji vyskytuje, když je dialog relativně umístěn, ale může nastat také v jiných případech, když je velikost obsahu těla "menší než" výška okna prohlížeče (což znamená, když se stránka vertikálně neposouvá).

Náhradní řešení: Přidání obsahu do těla (i neviditelné znaky, jako je příznak <div> s nastavenou výškou), takže vertikální posuvník bude na stránce vždy spuštěn, může problém obejít (to záleží na přesných rozměrech okna prohlížeče a obsahu).

2.16 hx:pagerDeluxe nevykresluje správně, pokud styleClass není "pagerDeluxe"

<hx:pagerDeluxe> nevykresluje správně značkovací jazyk HTML, pokud je styleClass nastaven na něco jiného než na předvolenou třídu pagerDeluxe. Tlačítka pageru se vždy vykreslí s názvy tříd, které použijí předvolené názvy tříd.

Náhradní řešení: