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

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

関連記事

JenkinsでwarファイルをTomcatにデプロイする方法

Tomcatサーバーへのデプロイは手動で行ってきました。 Antでリリースパッケージを作成して、SCP or FTPでリリース。原始的な方法です。 ですがJenkinsにTomcatのデプロイ用のプラ …

JUnitのアサーションにAssertJを使う

Junit3時代はassertEqualsでアサーションしてJunit4になると当初はhamcrestでアサーションしておりましたが最近はAssertJを使っております。 AssertJはFluent …

no image

Mavenでコンパイル時のJDKバージョンを指定する方法

久々にMavenを使う機会がありjar:jarを実行したら、コンパイルエラーが出力されてjarファイルが生成できませんでした。 コンパイルしているマシンがJava7で、どうもJava7で文字コード関連 …

Maven2でDomaを使ったアプリケーションをコンパイルする方法

JavaのO/Rマッパーの金字塔はなんですかね。 自分で言うのもなんですが、僕は完全にO/Rマッパーの移行に失敗したので、この辺りは疎いのですが・・・。 そんな僕はDomaというO/Rマッパーを使って …

SpringMVCでPagenationを実装する方法

最近、SpringMVCを使って色々作っておりました。 今まで色々なフレームワークを触って、その度に挫折していましたが、SpringMVCは使えると思うように至りました。 業務ではないのですが、Spr …