strutsで、定義していないActionのURL「~.do」でアクセスすると、

Tomcatで500エラーと表示されてしまい、

例外
javax.servlet.ServletException: No action config found for the specified url.
(省略)

原因
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
(省略)

などとスタックがトレースされてしまいます。
もちろん、アクションの拡張子でない「jsp」などの場合は、存在しないURLを打つと
404エラーとなりますが、strutsのアクションでも404にするにはどうすればよいのでしょうか。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/12/02 21:29:08
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

逃げ的な発想になりますが web.xmlを設定してエラーページに飛ばすのはいかが?

<error-page>
   <exception-type>javax.servlet.ServletException</exception-type>
   <location>/hoge/hoge.html</location>
</error-page>
id:kyoko55

web.xmlで思い出しましたが、参考書などで見かけるような

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

で、拡張子.doの全てをstrutsに結び付けているのが問題ですね。

ワイルドカードでなく、定義済みのURLの数だけ、<url-mapping>タグを定義することで自己解決しました。

2008/12/02 21:26:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません