DATE : 2006/05/21 (Sun)
最近、諸事情で JSF に手を出し始めました。
(;^ω^)Java SE, ME, EE と忙しいですが、気にしないでください
JSF とは、とても簡単に言えば GUI を作る感覚でウェブアプリケーションを作ることができる仕様です。
私はその実装として Apache MyFaces を使用しています。MyFaces には、 tomahawk という MyFaces 独自の JSF コンポーネントが用意されています。これがなかなか便利なのでMyFaces を使っている、という次第です。
しかし、問題はその tomahawk、バージョン1.1.2で起きました。
tomahawk には DataScroller という JSF コンポーネントがあります。これを使うと、大量のデータからなる表を複数ページに分割でき、さらにナビゲート用のリンクまで用意してくれます。
とりあえず、日本語、英語、公式、非公式さまざまな資料を見ながら、 DataScroller を使ってみました。
(;゚Д゚)動きません。(;´Д`)動くことは動くのですが、次のページへ行こうとしたり、3ページ目へ行こうとしても移動してくれません。
とりあえず、資料を見直したり、 DataScroller に渡すデータを見直したり修正したりといった作業を繰り返しました。
しかし、状況は一向に変わらず(´Д⊂ヽ
バグ追跡システムも当たってみましたが、怪しそうなものはいくつかあったものの、決定打にはならず……。
もう自前で複数ページに分割するようにしようかとも考え始めたのですが、とりあえず最後(に近い)手段を思いつきました。
まずは、tomahawk を現在開発中の最も新しいバージョンにするということです。1.1.2で動かないのですから、それよりも新しいバージョンであれば修正されている可能性があります。Apache MyFaces はオープンソースで公開されているので、幸いにも開発中のバージョンでも手に入れることができます。
もう一つは、1.1.2を1.1.1にダウングレードすることです。最新版だからといって、安定しているとは限りません。DataScroller は1.1.0よりも昔からあるので、初めからうまく動かないものがずっと提供され続けていることもないだろうと考えました。
さて、実際に上の方法を試してみたところ……
ダウングレードしたら動きました orz
1.1.2がバグっていたのか、それとも資料にある書き方が古かったのかは分かりませんが、昨日1日悩み続けていた問題があっという間に解決してしまいました(;・∀・)
(;´∀`)ちなみにこの DataScroller 、結構バクバグのようです。バグ追跡システムにも結構居座っていますし、JavaScript を生成せずに使用する設定にするとやっぱり動きませんでした。
(;´Д`)こういう時、本当に「時間よ戻れ」と叫びたくなりますね
(;^ω^)時が戻ったのは tomahawk だけ……