2009-03-31 6 views
0

レールの "current-to-current"を複製する方法はありますか?Struts 2のナビゲーションリンクを作成する

e。ナビゲーションにリンクのリストがあり、現在のページを別のCSSスタイルでマークしたい(またはリンクではなくプレーンテキストにする)

今、私はアクションクラス(getPage())でメソッドを作って、各アクションに割り当てた名前を返し、ナビゲーションをビルドするときにそれをテストします...かなりうまくいかず、私は持っています手動でページ名を設定する(何らかの形で自動的にコンテキストから取得することはできない)。

Struts 2、Tiles、JSP + Struts taglibを使用します。

答えて

4

あなたがなどの任意のparams、アクション、せずにURLタグを使用することができ、現在のURLを取得するには:あなたは次に

<s:url var="url" action="someAction" escapeAmp="false"> 
    <s:param name="id" value="id"/> 
</s:url> 

<s:url var="currenturl" includeParams="get" escapeAmp="false"/> 

は、その後、あなたのナビゲーションURLを構築するようなものを想定し通常のifタグを使用して、作成したURLと現在のURLが一致するかどうかをテストできます。

<s:if test="#url eq #currenturl"> 
</s:if> 

例えば、クラスを変更するために、あなたはあなたのアンカー定義に条件付きインライン操作を行うことができます。

<a href="<s:property value="#url"/>" <s:if test="#url eq #currenturl">class="current"</s:if>>XXX</a> 

を使用includeParamsあなたのURLのパラメータは、ナビゲーションのために有意義である場合に=「GET」それ以外の場合は除外し、ifを次のように使用します。

<s:if test="#url.startsWith(#currenturl)"> 
関連する問題