こんにちは!りゅうです。
今回はSpringbootの画面遷移部分ついて書いてみました。
この記事で実現したいこと
SpringとGradleを使用し、簡単な画面遷移のできるアプリケーションを作成
まずは以下のSpringInitializrでサンプルのベースを取得してきます。
https://start.spring.io
設定内容はこんな感じです。

Dependenciesに以下を選択しています。
・Spring web Webサービスを提供するフレームワーク
・Thymeleaf HTMLなどのテンプレートエンジン(ここではControllerを使用するために必要)
全部で4つのファイルを作成していきます。
コントローラ(画面ごとに分けて作成しました。)
・ HomeController
・ ListController
コントローラに対応するページ
・home.html
・list.html
以下はsrc直下の構成です。

コントローラはApplicationファイルと同じ階層にフォルダを作成し、その直下に格納しています。
コントローラで表示したいhtmlのページをresources>templates直下に配置しています。
コントローラ
package com.example.GradleApp;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/home")
public class HomeController {
@RequestMapping(method=RequestMethod.GET)
public String home() {
return "home";
}
}
SpringのControllerは@Controllerのアノテーションを付けることで認識してもらえます。
@RequestMappingに遷移先を指定します。
メソッドの戻り値(home)が指定したhtml(home.html)を呼び出す仕組みになっています。
ListController はhome部分をlistに変えているだけです。
HTML部分
勤怠管理システムという体で作成しました。
それぞれお互いの画面を行き来できるボタンを配置しました。
ホーム画面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>勤怠管理ホーム</title>
</head>
<body>
<h1>勤怠管理ホーム</h1>
<p id="RealtimeClockArea"></p>
<button onclick="TimeStamping()">打刻</button>
<button onclick="location.href='list'">勤怠一覧</button>
</body>
</html>
<!-- 時間表示スクリプト -->
<script>
function showClock() {
var nowTime = new Date();
var nowHour = nowTime.getHours();
var nowMin = nowTime.getMinutes();
var nowSec = nowTime.getSeconds();
var msg = nowHour + ":" + nowMin + ":" + nowSec;
document.getElementById("RealtimeClockArea").innerHTML = msg;
}
setInterval('showClock()',1000);
</script>
<style>
#RealtimeClockArea {
font-size: x-large;
}
</style>
勤怠表画面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>勤怠表</title>
</head>
<body>
<h1>勤怠表</h1>
<table border>
<tr>
<td>日付</td>
<td>勤怠区分</td>
<td>開始</td>
<td>終了</td>
</tr>
</table>
<button onclick="location.href='home'">ホーム</button>
</body>
</html>
必要なファイルの作成が終わったらターミナルを開き、アプリのフォルダに移動、ビルドコマンドでビルドします。
./gradlew build
ビルドが問題なくできたら以下のコマンドでアプリを起動します。
./gradlew bootRun
ターミナルで起動が確認できたら以下のリンクからアクセスします。
http://localhost:8080/home
こんな感じで表示できているかと思います。
home.html

list.html

今回はただ画面遷移するだけでしたが、勤怠管理システムとしては勤怠を管理するServiceやModelの実装もできたら、アプリとしては一通り使えるものになるので、実装していこうと思っています。できればログイン機能の実装までしたいところです。
今回は以上になります。
ご覧いただき、ありがとうございました。