Revision 9 as of 2009-12-31 06:50:16

Clear message
Locked History Actions

wicket/BreadCrumbs

パンくずリストの実現

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

などとしなければならないだろうし、後者の経路は