Java

Spring MVCのコントローラーで任意のステータスコードを返す方法

投稿日:2013/10/11 更新日:

Spring MVCにかぎらずなんですが、URIリソースが見つからない場合は、適切なステータスコードを返してブラウザにお知らせする必要があると思います。
例えば、マッピングには一致したが指定された条件に一致しないから404を指定したい場合などです。
まさに、Spring MVCで同様なことをしようと思ったら探し方がわるいのか、なかなか見つからなかったのですが、ようやく見つかりました。
@ResponseStatusアノテーションを使うみたいですね。

例えば404を返す場合は、

@ResponseStatus(value = HttpStatus.NOT_FOUND)
private class HttpStatus404Exception extends RuntimeException {
}

のような実行時例外クラスを作成して、以下のようにします。

@RequestMapping("/")
public String index(Model model) {
  throw new HttpStatus404Exception();
}

これは極端ですが、マッピングに一致すると404を返します。
ですが、これだとステータスごとに例外を作成しなければならないので、ちょっと面倒です。
まぁでも目標は達成できました。

参考サイト

trigger 404 in spring-mvc controller?

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

Spring MVCでHelloWorld Maven2からEclipse編

先日よりはじめて触ったSpingMVC。 取り急ぎ、環境構築をしてみます。 初めてなので、WEBのチュートリアルみたいなのを見ながら始めました。 今回の目標はMaven2でひな形を作って、それをEcl …

初めてのStack Overflow(英語サイト)

最近、困ったことがあって調べものをするとだいたいStack Overflowの記事がヒットします。 基本的にReadOnlyだったのですがApache Camelのことで少し気になったことがあったので …

Tomcatのメモリ使用量をjconsoleを使って監視する方法

まれに、Tomcatのメモリ使用量をリアルタイムで知りたいということが無いでしょうか。 管理人はたまにあります・・・。 JDK5か6以降jconsoleという便利なツールが追加されまして、それを使って …

Spring MVCでビューにApache Tilesを使う

Spring MVCはデフォルトのビューはJSPみたいですね。 JSPでも問題ないのですが、せっかくなのでTilesを使ってみたいと思います。 僕の印象ではTilesは、それ自体がテンプレートシステム …

SpringMVCを使ってみることにしました。

Tomcat3時代のころからJavaでウェブアプリケーションを使っておりますが、フレームワークはあんまり使ったことがありません。 業界標準?だったStruts1も試しに使ってみてxml書くのと存在意味 …