- - PR -
Webアプリ(Struts)へのアクセスURL
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-10-05 03:37
はじめまして。
StrutsでWebアプリを作成しています。 ルートのすぐ下にxxxxx.doでアクセスはできるのですが ttp://...../WebAppName/test.do 間に階層を入れてアクセスできるようにするには ファイル配置、xml記述をどうすれば良いのでしょうか? ttp://...../WebAppName/○○/△△/test.do HTMLやPHPですと単にフォルダ作成でできるのですが、Strutsだとわかりませんでした。 基本的な事かと思いますが、よろしくお願い致します。 以下に現在の、ファイル配置・struts-config.xml・web.xmlを記述します。 --------------------------------- WEB-INF ├struts-config.xml ├web.xml ├classes │└TestAction.class └jsp └test.jsp --------------------------------- <struts-config> <action-mappings> <action path="/test" type="TestAction"> <forward name="success" path="/WEB-INF/jsp/test.jsp"/> </action> </action-mappings> </struts-config> --------------------------------- <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> --------------------------------- | ||||
|
投稿日時: 2007-10-05 06:55
<param-name>config</param-name> ← ここにアル操作を加えると別階層にできる。
| ||||
|
投稿日時: 2007-10-05 09:15
<action path="/test" type="TestAction"> ← ここにアル操作を加えても別階層にできると思う。
| ||||
|
投稿日時: 2007-10-05 09:29
静的なWebページなどを作った経験などがあると、
htmlを配置するフォルダ構造と、URLの階層とが対応付いていて 切っても切れない関係のように思うかもしれませんが 実際にはURLの階層とフォルダ階層が同じである必要はありません。 HTTPでGETコマンド(つまりWebページの表示)を投げた場合、 GET /hoge/piyo.html HTTP/1.1 といったコマンドが送られてくるわけですが、これに対して何を返すのかを Webアプリケーションでは自由にプログラムすることができます。 Servletの場合、web.xmlの<servlet-mapping>タグでどういったURLに対して どういったServletを呼び出すかを設定できます。 Strutsを使う場合は
としますが、これは*.doにマッチするURLはすべてactionという Servletに処理させるという意味です。 フォルダなんて全然見ていないんですね。 同じ拡張子は全部同じServletで処理するという観点なんです。 んで、Strutsの本体であるServletの中ではstruts-config.xmlを見て 再びどのURLでどのActionをどう処理するかを設定しているのです。 その設定が <action-mappings>タグの部分。 プログラムはただコピー&ペーストするのではなく、 それぞれの記述の意味を理解すると多彩な表現ができるようになります。 | ||||
|
投稿日時: 2007-10-06 23:34
朝日奈ありす さん
ありがとうございます。下記で実現できました。 <param-name>xxx/yyy Java僧 さん ありがとうございます。下記で実現できました。 <action path="xxx/yyy" nagise さん 完全にフォルダ階層と思い込んでおりました。 丁寧な説明ありがとうございます。 色々いじってみたいと思います。 皆さんどうもありがとうございました。 |
1