パンくずリストの実現
wicket-extensionsにパンくずリストパネルが用意されているが、これは使い物にならない。 ここでは独自のパンくずリストの実装について考えてみる。
パンくずリストのそもそもの問題
パンくずリストを使って、一つの同じページに到達するのに別々のルートを通った場合の表現を行うのは非常に困難である。 また、経路途中の特定の状態を保持するのも困難である。以下の二つのパンくずリストを考えてみる。
トップ / 顧客一覧 / 顧客A
トップ / 製品一覧 / 製品B / 製品B購入者一覧 / 顧客A
いずれの場合も、現在顧客Aのページを表示しているが、そこにいたるまでの経路はそれぞれ異なる。このパンくずリストのいずれかのエントリをクリックすると、そのページを表示したいとする。
しかしこれは非常に難しい、例えば、今現在表示中の顧客Aのページがブックマーク可能であるとすると、そのブックマークは
http://localhost/customer?id=1234
ではありえない。なぜなら、これでは顧客Aのページということはわかるのだが、その途中の経路情報が一切無いからである。これをあえて表示しようとすれば、
トップ / 顧客A
となるしかない。もし前者の経路を表現しようとするなら、
http://localhost/?path0=top&path1=customerList&path2=customer&id=1234
などとしなければならないだろうし、後者の経路は