Spring MVC

Spring MVCで複数画面をもつWEBアプリケーションを作成してみた

今回は、Spring MVC上で、複数画面間で画面遷移するプログラムを作成してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Spring MVCでThymeleafを利用してみた前回、Spring MVCプロジェクトを作成した際は、画面がJSPで作成されていたが、今回はThymeleafを利用するHTMLファイル...

また、lombokを利用するので、下記記事のlombokの設定が完了していること。

STS(Spring Tool Suite)上でlombokを利用してみた今回は、STSを利用して、lombokを利用してみたので、その手順を共有する。STS上でlombokを利用できるようにするには、あらかじ...

流用ソース

Spring Bootを使っていた、下記記事のソースコードを流用するものとする。

複数画面をもつSpring BootのWEBアプリケーションを作成してみた今回は、入力画面・確認画面・完了画面の3画面を含み、HTMLオブジェクトとしてテキストボックス・セレクトボックス・ラジオボタン・チェック...

サンプルプログラムの実行結果

上記「流用ソース」の記事の「完成した画面イメージの共有」と同じ結果となる。ただし、初期表示画面へのアクセスパスは、「http://(サーバー名):(ポート番号)/(プロジェクト名)/」と読み替えること。

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、「前提条件」または「流用ソース」のプログラムから変更したプログラムである。

pom.xmlに追加した内容は以下の通りで、lombokの設定を追加している。

また、web.xmlに追加した内容は以下の通りで、リクエストパラメータのエンコーディング指定を追加している。これを追加しないと、画面遷移を行う際に文字化けが発生してしまう。

また、input.htmlの内容は以下の通りで、「流用ソース」と比べ、formタグのaction属性を、「action=”/confirm”」⇒「th:action=”@{/confirm}”」と変更している。

さらに、confirm.htmlの内容は以下の通りで、「流用ソース」と比べ、formタグのaction属性を、「action=”/send”」⇒「th:action=”@{/send}”」と変更している。

他、DemoController.java、DemoForm.java、complete.htmlは「流用ソース」と同じ内容となる。そのソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-mvc-web-somescreen/demo

要点まとめ

  • Spring MVCプロジェクトで複数画面間で画面遷移するようにするには、web.xmlでリクエストパラメータのエンコーディング指定を追加する必要がある。
  • Spring MVCプロジェクトでの、HTMLファイル内のformタグのaction属性では、先頭に「/(プロジェクト名)/」を指定する必要がある。