• 締切済み

Struts2のアクセスURLについて

こんにちわ、現在WebLogic環境でStruts2.2 + Spring2.5 +Hibernate3.0で開発を行っています。 今回質問したい内容は、Actionクラスへのアクセス時に複数のURLを使用できないかと言うことです。 Struts2だと /コンテキストルート/namespace/アクション名 でアクションへのアクセスができると思うのですが、今回間に文字を挟み二種類のURLでそのアクションにアクセスする必要が出てきました。 # TestActionクラスへのアクセス # コンテキストルール:XXX # namespace:YYY # 挟みたい文字:ZZZ # # 二種類のURL # /XXX/YYY/test ⇐ ルートA # /XXX/ZZZ/YYY/test ⇐ ルートB 何がしたいかというとルートAとルートBでrequestUrlを見て処理を分岐させて微妙に違うことを行いたい為です。 なおxml記述は行わずアノテーションでの記載を行っています。 概要ではありますが、お力添えをお願いいたします。 以上です。

みんなの回答

noname#147388
noname#147388
回答No.1

スーパークラス作成し、子クラス(実行アクションクラス)に違う処理を記述してはいかが?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • struts2で作ったアプリへアクセスするURLを簡潔にしたい。

    struts2で作ったアプリへアクセスするURLを簡潔にしたい。 現在、勉強がてら、 apache2.2 , jboss, struts2を使ってWebサイトを作成しています。 本などを参照してstruts2で、開発していますと、 アプリに接続するためのURLが、 http://localhost:8080/[appname]/[namespace]/index のようになります。 実際には以下のようになっています。 http://localhost:8080/dlift/pc/index ただ、開発がうまくいき、世に出すときには、 http://www.dlift.jp/ のように、簡潔なURLにしたいと考えております。 ですので、自分で調べてこれを解決しようとしましたが、 うまくいきませんでした。 自分でやった方法は、 jboss-web.xmlに <context-root>/</context-root>を追加し、 struts.xmlから、namespaceを削除したりして、 urlから、[appname]と[namespace]を取り除く作業をしました。 その後、http://localhost:8080/に接続しますと、 jbossのコンソール画面が表示されてしまいます。 ここに、自分で作成したindex画面を表示したいと考えておりますが、 どのようにすれば、それが可能でしょうか。 お手数ですが、一般的な方法をご教授頂けますでしょうか。 よろしくお願いいたします。

  • URLからディレクトリ構造をテキストとして取り出す方法

    URLからディレクトリ構造をテキストとして取り出す方法 たとえば http://www.xxx.com/xxx/yyy/zzz/ といったパスから、 自動的に http://www.xxx.com ├─xxx │ ├─yyy │ │ ├─zzz のようなツリーテキストを自動的に生成する方法や ツールはありませんか。 意味不明でしたら加筆しますのでよろしくお願いします。

  • あるURLがファイルなのかディレクトリなのかが知りたい

    用語の使い方が不正確かもしれませんがご容赦下さい。 例えば、http://www.foobar.jp/xxx というURLがあった場合に、xxx の部分がファイルなのか、あるいはディレクトリなのか、あるいはスクリプトなのか、を知るにはどうしたらいいでしょうか? 現在、以下のようなプログラムを作成しています。 ・あるURLを指定する。 ・そのURLが指すページの内容を取得する。 ・そのページの中にあるリンクを全て取得する。 ・取得したリンクをフルパスに変換して出力する。 この際、 ・指定したURLがホスト名のみ ・指定したURLが / で終わっている ・取得したリンクがフルパス ・取得したリンクが / で始まっている ような場合は問題ないのですが、 ・指定したURLがホスト名のみでなく、かつ / で終わらず、かつ取得したURL が / ではじまらない といった場合は、どのようにフルパスを組み立てたらいいかがわかりません。 例えば、指定したURLが「http://www.foobar.jp/xxx」、取得したリンクが「yyy/zzz」のような場合、出力すべきフルパスは以下の2種類が考えられますが... http://www.foobar.jp/xxx/yyy/zzz http://www.foobar.jp/yyy/zzz 以上よろしくお願いします。

    • ベストアンサー
    • Perl
  • Struts2でアプリが実行できません

    eclipse上でtomcatサーバーを起動して実行しています。 実行しようとすると以下のようなエラーが出ます。 There is no Action mapped for namespace / and action name STRUTS2SMPTOP. 実行URLは「http://localhost:8080/DevLearning/STRUTS2SMPTOP.action」で DevLearningプロジェクトを呼ぶようにしています。 web.xmlでsrc.main.java.jp.co.isense.devlearning.action内のアクションクラスを呼び出すようにしています。 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>src.main.java.jp.co.isense.devlearning.action</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> web.xmlの設定の仕方が悪いのでしょうか、実行URLが悪いのでしょうか。

    • ベストアンサー
    • Java
  • WebWork(struts2)でのパラメータの取得について

    こんにちは。 環境:Webwork & Velocity(xwork2) & Tomcat5.5 & JDK 1.6 Action部がだいぶすっきりしましたが、requestのパラメータの取得が分かりません。 一般的なActionSupportを継承しているのですが、thisからHTTPRequestらしきGetterもありませんし・・。 やろうとしている事は'XXX.action?id=YYY'のように、URLからパラメータをgetしたいのですが。 ■JavaScript var url = "XXX.action?id=test"; ※Ajaxでリクエストしてますが省略します。 ■XML <action name="XXX" class="aaa.XXXAction">  <result name="menu" type="plainText">   /WEB-INF/classes/aaa/menu.html  </result>  <result name="test" type="plainText">   /WEB-INF/classes/aaa/test.html  </result> </action> ■Action public class XXXAction extends ActionSupport {  public String execute() throws Exception {   return SUCCESS; //←ここでURLにくっついたパラメータを返したい お分かりになりましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • EXCELで項目ごとに計算したい

    検索したのですが、どうもうまくひっかからないので 質問させて頂きます。お知恵拝借、お願致します。 EXCELで作成している下記のようなデータがあります。 (毎月1回で、1回につき数百~3万程度出てきます。 機種名、クラス名は、その時々でいくつ出てくるか変わります。) 機種名 台数 クラス XXX   1   A YYY    2   B XXX   3   C ZZZ   1   A YYY   2   B  :    :   : と言ったデータを クラス  A     XXX  1       ZZZ  1 B     YYY  4 C     XXX  3 と言ったように計算して提出するマクロを作りたいと 考えています。ピボットも考えましたが どうもうまく考えが浮かびません… こんな考え方があるよとか、参考になるURLなど 教えて頂けますでしょうか? 宜しくお願い致します。

  • cgiのアクセスカウンターで出来ることは?

    現在、自分自身のHPを公開しており、そのHPではアクセスカウンタ用cgiを使用しております。 ここで、 http://xxxxx.xxx/index.html へとアクセスした場合にだけカウントアップされるカウンターを http://xxxxx.xxx/yyy/zzz.jpg (←HP内のデータ) をダイレクトにアクセスされた場合にもカウントアップさせたいと思っております。 index.html内にcgiの記述をしておけば、index.htmlへのアクセスがあった場合にカウントアップされるのは理解しておりますが、別フォルダのzzz.jpgに直リンが張られていて、ダイレクトにzzz.jpgにアクセスされた場合にもカウントアップされる設定方法が分からないでおります。 →何か良い方法がありますでしょうか?

  • Strutsで共通のアクセス解析用URLを呼びたい

    下記の環境にて、携帯サイトのシステム開発をしております。 環境:Tomcat5. 5 JDK5 Eclipse3.4 Struts    ※携帯サイトのため、Javascriptは使用不可 この度、サイト内のアクセス分析のために外部サーバに用意されたアクセス解析用のURLを呼び出すことになりました。 アクセス解析用のURLに渡すパラメーターとして、会員ID、ユーザーエージェント、リクエストページ、リクエスト元ページ等を渡す予定になっておりますが、どの用に対応すべきかが、私自身がJavaの初心者のため、皆様のお知恵をおかりしたく質問しております。 個人的な考えですが、以下の様な処理方式を考えています。 (1)アクセス解析用のURL呼び出しメゾットを事前に共通処理で用意する。    ※引数はRequestとResponseを渡す予定で考えてます。 (2)各ページのActionフォーム(.do)の処理の先頭で、ディスパッチ(include)    で、(1)のメゾットを呼び出す 上記方法で、対応方法として最善でしょうか、他に良い方法等がございましたらお手数ですが、ご教授ください。 ※画面数が300画面あるため、(2)のコーディングを300も対応するのは、大変であり、対応範囲を極力減らしたいとも考えております。

  • strutsで、任意の画面からの任意のURLを受け付けた時の処理がしたい。

    strutsを勉強中の者です。 strutsで、  (1)a.jsp→(2)b.do→(3)b.class→(4)c.jsp という画面遷移はできるようになったのですが、(現在b.doとb.classは同じ名前にしています。) 任意の画面からの呼び出しで、  (1)*.jsp→(2)*.do→(3)b.class→(4)c.jsp とし、(2)で入力された任意のURLを(3)で解析し、そのURLによって(3)内部での処理を分岐したいのです。 ちなみに、struts-config.xmlの定義で、 <action-mappings> <action className="test.ShowMain" path="/ShowMain" input="/jsp/html/*.jsp"> <forward name="success" path="/jsp/html/main.jsp"/> </action> </action-mappings> と、*を使って編集しようとしても、 画面に、HTTPステータス 500 が表示され、 コンソールには、 ---- 致命的: End event threw exception java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 2008/08/17 10:43:13 org.apache.struts.action.ActionServlet handleConfigException 致命的: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 情報: サーブレット action を利用不可能にマークします 2008/08/17 10:43:13 org.apache.catalina.core.StandardContext loadOnStartup 致命的: サーブレット /test がload()例外を投げました javax.servlet.UnavailableException: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー ---- と表示されてしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  GEF3.3  struts-1.3.8  JDK1.5  「Eclipseパーフェクトマニュアル ベストセレクション」  という本をもとに勉強しています。 a.こうした任意のページを受信する、という方法はStrutsで可能なのでしょうか? b.可能である場合、どのような方法を取れば良いでしょうか? どなたかご存知の方がいらっしゃいましたら教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • struts + Jbossを使用した画面遷移について

    struts + Jbossを使用した開発を行っているものです。 以下のルートディレクトリが違う画面があったとします。 A) ルートディレクトリ:test1 jsp名:test1.jsp URL:http://localhost:8080/test1/test1.do B) ルートディレクトリ:test2 jsp名:test2.jsp URL:http://localhost:8080/test2/test2.do A)の画面からsubmitし、B)の画面へ遷移したいのです が、出来ません。ルートディレクトリが違う画面遷移 って可能なのでしょうか?