トップメニューによって変わるサイドメニュー

このタイトルじゃ何のことかわからないかもしれません…。 はてなのこのページで言うと、ヘッダーのすぐ下にHOMEとかStruts一覧とかのメニューをクリックすると、それぞれのサブメニューがサイドにでてくるって感じのサイト、あれのことです。 図を書けばよくわかるんですが、めんどくさいので。
先に書いたこのdefinitionエクステンドして、それぞれのページを作ります。 Strutsのアクションマッピングでは、forward先にJSPファイルの変わりにこれらのdefinitionを指定します(こちらを参照)。




<put name="leftMenu" value="site.menu.struts" />



<put name="leftMenu" value="site.menu.company" />


そしてメニュー用のdefinitionを作成します。 個人的に私は、メニューdefinitionはtiles-defs-menu.xmlファイルにまとめています。 その一部はこんな感じになります。


...









[注]classtypeはオプショナルでディフォルトがorg.apache.struts.tiles.beans.SimpleMenuitemなので、上の場合省略可能です。
そしてsideMenu.jspでは縦にメニューのリンクを作るだけです。

<%@ include file="/WEB-INF/taglibs.jsp" %> →ここを参照
<%@ page contentType="text/html; charset=EUC-JP"%>

<div id="leftMenu">




→"/"で始まるリンク(アクション)




→global-forwardで定義されているアクション





</div>

必要であれば、タグを使ってtitleやitemsが存在するか確認します。