
struts関連 web.xmlに複数の<servlet-mapping>を記述する方法について
初歩的なことなのかもしれませんが質問させてください。
Struts1.3.5での質問なのですが、web.xmlにURLパターンを複数記述している場合に
servlet-mapping の記載位置が後の方のURLパターンが、
JSPのFormタグで生成されるパスに設定されてしまい、原因が分からず困っています。
現象としては、
例えば、web.xmlの<servlet-mapping>にそれぞれ異なる
URLパターンを[/abc/*]→[/xyz/*]の順で記述している場合、
web.xml(抜粋)----------------------------------------------
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/abc/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/xyz/*</url-pattern>
</servlet-mapping>
----------------------------------------------------------
URLパターンが[/abc/*]となる以下のURLをブラウザで表示した所、
[https:/localhost/{コンテキストルート}/abc/LoginAction]
表示されたJSP内で指定しているformタグのアクションパスが
web.xmlで記載したURLパターンのパスではなく、
web.xmlで後の方に記載した別のURLパターンのパス(/xyz/)が設定されてしまいます。
・表示されるJSP内で指定しているアクションパス
<html:form action="/LoginAction">
上記で生成されるHTML
<form name="LoginForm" method="post" action="/コンテキスト名/xyz/LoginAction">
web.xmlでURLパターンを[/xyz/*]→[/abc/*]の順で記述した場合は、
正しくURLパターンで記述したパスが設定されます。
<form name="LoginForm" method="post" action="/コンテキスト名/abc/LoginAction">
ただし、この場合はURLパターンが[/xyz/*]のURLを表示した場合に
<form ~ action="/{コンテキストルート}/abc/LoginAction">となってしまいます。
どなたかこうした現象について回避策をご存知の方はいらっしゃらないでしょうか?
No.2ベストアンサー
- 回答日時:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>servlet.TestServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>init</servlet-name>
<url-pattern>/abc/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>reference</servlet-name>
<url-pattern>/xyz/*</url-pattern>
</servlet-mapping>
このように、サーブレット名を切り分けてみてはどうでしょうか?
web.xml内の他の要素からも参照されるため、
サーブレット名は他と重複しない名前をつけないとだめです。
ご回答ありがとうございます。
Apacheのユーザガイドに複数の<servlet-mapping>要素を定義した場合にはフレームワークが正しく動作しない恐れがある旨の記述がされていました。(struts に限った事では無い様ですが。。)
・http://struts.apache.org/1.3.5/userGuide/configu …
(1.2.9の同ユーザガイドには、strutsと明記されていました。)
どうやら、strutsでは複数の<servlet-mapping>には対応していないようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java servlet tomcat エラー
-
HTMLから入力値なしで、servlet...
-
サーブレットの設定
-
環境変数の設定
-
web.xmlの中のjavaee:の意味は
-
web.xmlの書き方
-
RequestDispatcher.forwardメソ...
-
ENTER NETFOLDERについて教え...
-
eclipse3.0.2について
-
プログラム環境について
-
「Python」コンピューター言語...
-
EclipseでDojaのデバックできない
-
mod_jk.soがjakartaのサイトに...
-
[JAVA]一括コンパイル
-
サンプルコードがコンパイルで...
-
antについて
-
JavaのHello Worldについて
-
JSP/サーブレットって言語なん...
-
web.xmlの中の<web-app>につい...
-
コンパイルができません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPからServletへの遷移
-
サーブレットが起動しない
-
Tomcatでプログラムが動作しま...
-
struts関連 web.xmlに複数の<se...
-
サーブレットについて
-
JSPとサーブレット
-
Servletが動かない
-
resin.confの設定でご質問です
-
Tomcatによるサーブレット起動...
-
eclipse servlet 404対処方法
-
eclipseでwarの入れ子
-
サーブレット フィルタ
-
servlet (resin) について
-
servletのコンパイルエラーにつ...
-
サーブレットが実行できない
-
TOMCAT5
-
Tomcat起動時にエラーが発生し...
-
list<クラス名> とは何でしょう...
-
eclipseでのServlet作成
-
xmlについて
おすすめ情報