0

私は以下の行を持つjspを持っています:

 <ul>
    <li><a id="iso3_dan" href="/?lang=iso3:dan&locale=iso3:dan">Dansk</a></li>
    <li><a id="iso3_deu" href="/?lang=iso3:deu&locale=iso3:DEU">Deutsch</a></li>
 </ul>

基本的に、言語のドロップダウンを表示するために使用されます。次に、現在のページアクションも追加されるようにURLを作成する必要があります。

Struts2を使用しています

ブラウザで、管理メニューを押すと、URLが次のように変わります。

http://<portalIp>/admin

マーケティングメニューを押すと、次のように変わります。

http://<portalIp>/marketing

今、私がする必要があるのは、この/adminおよび/marketingアクションを言語で追加する必要があるということです。したがって、マーケティングページを表示している場合は、以下に示すようにマーケティングアクションを渡す必要があります。

<a id="iso3_dan" href="/marketing?lang=iso3:dan&locale=iso3:dan">Dansk</a>
<a id="iso3_deu" href="/marketing?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>

管理ページを表示している場合は、以下に示すように、現在のアクションを渡す必要があります。

<a id="iso3_dan" href="/admin?lang=iso3:dan&locale=iso3:dan">Dansk</a>
<a id="iso3_deu" href="/admin?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>

JSPで現在のアクションを渡すにはどうすればよいですか?私は以下を試しました:

<a id="iso3_deu" href="<%= request.getRequestURL() %>/?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>

しかし、これはうまくいきませんでした。Javascriptコードを追加せずに、アクションのみのパスを取得するにはどうすればよいですか?

注:検索エンジンが最適化されているため、Javascriptを使用できません。それ以外の場合、javscript関数document.location.pathnameはこの問題を解決します。

どんな助けでも大歓迎です!!

ありがとう!

4

2 に答える 2

0

私は、そこに尊敬されているアクションクラスにマッピングされているあなたのアクションの名前であると信じadminmarketingいます。この場合、Struts2は。を使用してアクション名にアクセスする方法を提供しますActionContext

アクションクラス/ベースアクションクラスに次のようなユーティリティメソッドを作成できます。

public String getActionName() {
        ActionContext a = ActionContext.getContext();
        Object value = a.getName();
        return value;
}

ActionContextコンテキストへの参照を提供すると、スタック内のアクション名やその他の多くの貴重な情報を取得できるようになります。

于 2012-08-14T04:52:18.507 に答える
-1

コントローラでアクションパスを取得してjspに渡すことができるので、次のようにjspurlに転送します。

your.jsp?action=/admin

jspの出力パラメータ。

于 2012-08-14T02:17:49.517 に答える