プロが教えるわが家の防犯対策術!

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.可能である場合、どのような方法を取れば良いでしょうか?

どなたかご存知の方がいらっしゃいましたら教えて下さい。
宜しくお願い致します。

A 回答 (1件)

そこに用意されているフォームの内容は固定されているのだろうか。

Strutsは、基本的にフォームをアクションフォームで管理する仕組みなので、フォームの内容に応じたアクションフォームを用意しなければいけない。従って、フォームの内容がてんでばらばらだったり、あるいはフォームがない!なんてものだとちょっと対応は難しいだろうな。

既にフォームの内容が固定されているのであれば、DynaActionFormを使ってアクションフォームを定義することで、複数のフォームを1つのアクションフォームで受けられるように設計することはできる。また移動先は、DispachActionを使ってアクションを管理すればいいだろう。

とりあえず「DynaActionForm」「DispachAction」で調べてみては。

この回答への補足

御礼が遅くなり、大変申し訳ありません。

現在、「DynaActionForm」「DispatchAction」含め、方式を検討中です。
回答頂きありがとうございました。

補足日時:2008/08/24 11:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!