初歩【SpringBoot】前の画面に「戻る」について
解決したいこと
予約管理システムを作成しております。
予約した際に予約番号が発行され、入力することで予約情報をDBから取り出して表示するreserveInfo.htmlというファイルを作成しました。
上記ファイルから日付を指定すると予約可能な時間帯を表示し、メニューなどの項目を変更できるreserveChange.htmlに遷移します。
SQLで取得したデータを表示する画面の次のページで元のページに戻る際の最適なコーディング方法教えていただきたいです。
下記に記載のinfoメソッドを呼び出すことで画面を戻る際にDBからの情報を受け取れるかと思いますが、他に効率的な記述方法などがあるのかご教授いただきたいためです。
大変わかりづらいと思いますが、よろしくお願いいたします。
■DBから取得したデータがnullでなければ、reserveInfo.html表示する(infoメソッド)
// home.htmlから入力された予約番号から予約の情報をDBより検索し出力する
@GetMapping("/info")
public String info(@RequestParam("id") String id, Model model) {
reserveId = id;
Reserve reserve = dao.idFind(id);
if (reserve != null) {
model.addAttribute("reserve", reserve);
model.addAttribute("name", reserve.name());
model.addAttribute("reserveDays", reserveDays);
return "reserveInfo";
} else {
System.out.println("reserve = null メッセージ:データベースに入力された予約番号の情報がありません。");
return "notReserve";
}
}
予約情報を確認できるreserveInfo.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
<title>予約情報確認ページ</title>
</head>
<body>
<h1><span th:text="${name}"></span> 様</h1>
<h3 class="reserveInfo_headline">予約詳細</h3>
<div>
<table border="1" style="border-collapse: collapse;">
<thead>
<tr>
<th>予約番号</th>
<th>予約日</th>
<th>予約時間</th>
<th>予約メニュー</th>
<th>メールアドレス</th>
<th>電話番号</th>
</tr>
</thead>
<tbody>
<tr th:each="reserve : ${reserve}">
<td th:text="${reserve.id}"></td>
<td th:text="${reserve.date}"></td>
<td th:text="${reserve.time}"></td>
<td th:text="${reserve.menu}"></td>
<td th:text="${reserve.email}"></td>
<td th:text="${reserve.tel}"></td>
</tr>
</tbody>
</table>
</div>
<br>
<div class="reserveChange">
<p>予約内容を変更する</p>
<form th:action="@{/reserveChangeForm}">
<p>変更したい日付を指定してください</p>
<p>※日付の変更がない場合でもこちらから変更をお願いいたします。</p>
<input type="date" name="date" th:min="${reserveDays}" required>
<input type="submit" value="進む">
</form>
</div>
<br>
<div class="reserveDelete">
<p>予約をキャンセルする</p>
<form th:action="@{/reserveDelete}">
<input type="hidden" name="${reserve.id}">
<input type="submit" value="予約をキャンセルはこちらから">
</form>
</div>
<h4>
<a th:href="@{/}">ホームに戻る</a>
</h4>
</body>
</html>
予約の変更ができるreserveChange.html
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>予約変更画面</title>
</head>
<body>
<!-- 指定された日付を表示する -->
<h1 th:text="${#temporals.format(date, 'yyyy年MM月dd日')}"></h1>
<h2>予約したい時間を下記から選択してください。</h2>
<!-- DBのデータを参照し、予約できる時間を表示する -->
<form th:action="@{/reserve}" method="post">
<form th:action="@{/mail}" method="get">
<label>時間</label>
<input type="time" name="time" step="1800" list="data-list" min="10:00" max="18:00" required>
<datalist id="data-list">
<option value="10:00"></option>
<option value="10:30"></option>
<option value="11:00"></option>
<option value="11:30"></option>
<option value="12:00"></option>
<option value="12:30"></option>
<option value="13:00"></option>
<option value="13:30"></option>
<option value="14:00"></option>
<option value="14:30"></option>
<option value="15:00"></option>
<option value="15:30"></option>
<option value="16:00"></option>
<option value="16:30"></option>
<option value="17:00"></option>
<option value="17:30"></option>
<option value="18:00"></option>
</datalist>
<label>メニュー</label>
<select name="menu" required>
<option>カット</option>
<option>カットカラー</option>
<option>カットパーマ</option>
</select>
<br>
<h2>お客さま情報</h2>
<label>氏名</label>
<input type="text" name="name" required>
<label>メールアドレス</label>
<input type="email" name="email" style="width: 200px;" required>
<label>電話番号</label>
<input type="tel" name="tel" required>
<input type="submit" value="予約する">
</form>
</form>
<br>
<h3>現在の予約状況</h3>
<table border="1" align="left">
<tr th:each="time:${timeList}">
<td th:text="${time}"></td>
</tr>
</table>
<table border="1" style="width: 150px;">
<tr th:each="judge : ${judge}">
<td th:text="${judge}"></td>
</tr>
</table>
<h4>
<a th:action="@{/}">日付選択画面へ戻る</a>
</h4>
</body>
</html>
0