PrimeFacesの恩恵を受けるようになりまして、だいぶ年月が経過してしまいましたが、いつの間にかVer10.0.0がリリースされていたのですね!
現在利用中のVersionは6.2だったので、実験的にVer10.0.0へのマイグレーションをトライしてみました。
pom.xmlを編集し、Let's Goです!!
<dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>10.0.0</version> </dependency>
※検証は数時間程度行っただけの簡易的なものです。ご了承ください。
検証結果
(1) デフォルトテーマ「aristo」が無くなっている
ビルドは成功したのですが、いきなり起動時に例外が発生しました。
javax.faces.FacesException: Error loading CSS, cannot find "theme.css" resource of "primefaces-aristo" library
マイグレーション・ガイドを確認したところ、Removed aristo theme and now saga the default theme
と書かれていましたね。
こちらについては、他のテーマと同じように取得すればOK!
下記の記述をpom.xmlに追加して、再ビルドして通常起動できるようになりました。
<dependency> <groupId>org.primefaces.themes</groupId> <artifactId>aristo</artifactId> <version>1.0.1</version> </dependency>
(2) AccordionPanel初回表示で、パネルOPENにもかかわらず中身が表示されない
showcaseでは問題ないようなんです。
パネルがOPENになっていて中身も表示されています。
下記のような基本的なページを作成したみたものの結果は変わらずでした。。。
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui"> <h:head> <title>AccordionPanel テスト</title> </h:head> <h:body> <div>AccordionPanel テスト</div> <p:accordionPanel multiple="true"> <p:tab title="First Tab Title"> <h:outputText value= "タイトル1"/> </p:tab> <p:tab title="Second Tab Title"> <h:outputText value="タイトル2" /> </p:tab> </p:accordionPanel> </h:body> </html>
「タイトル1」という中身が表示されていません。
ちなみに、アコーディオン制御の矢印を2回クリック(閉じて、開いて)すると、中身は表示されました。
こちらは解決できず。。。Ver8.0までは大丈夫だったのですが。
埒が明かないので、これについては、アコーディオンではない通常パネルに変更する必要がありそうですね。
(3) Client SideでSelectOneMenuの値をセットしようとするとjsエラーが発生する
// Console Error Message Uncaught TypeError: this.items is undefined selectValue
PF('widgetVarName').selectValue(value1);
上記のコードの部分でエラーが発生していることがわかりました。
こちらについては、下記のissueでFixされているようです。
まとめ
結論としましては、現状のアプリでは、(3) の問題が致命的なので、次のVersionを待とうかと思っています。
ブラウザも次々に更新されていく中で、UI Frameworkの重要度もより高まっているので、基本「塩漬け対応」にはせずに、こういったチャレンジは継続していきたいところではありますね。