Compare commits
9 Commits
ee5ec5009d
...
s-morimto
| Author | SHA1 | Date | |
|---|---|---|---|
| acd7534fdb | |||
|
|
add6a85c64 | ||
|
|
fd74dee965 | ||
|
|
7aa8e31bfd | ||
|
|
e3af89a694 | ||
|
|
efdaacbb27 | ||
| 154e6787d4 | |||
| 75f2f7c8d0 | |||
| ac101172d2 |
@@ -4,6 +4,8 @@ package com.example.demo.aop.handler;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
||||||
@@ -37,7 +39,7 @@ public class GlobalExceptionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
|
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
|
||||||
public String handleBadRequestException(Model model, Exception e) {
|
public String handleBadRequestException(Model model, Exception e, HttpSession session) {
|
||||||
model.addAttribute("error", SEVERE_ERROR_MESSAGE_BAD_REQUEST);
|
model.addAttribute("error", SEVERE_ERROR_MESSAGE_BAD_REQUEST);
|
||||||
model.addAttribute("status", HttpStatus.BAD_REQUEST.value());
|
model.addAttribute("status", HttpStatus.BAD_REQUEST.value());
|
||||||
|
|
||||||
@@ -45,17 +47,23 @@ public class GlobalExceptionHandler {
|
|||||||
|
|
||||||
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE_ILLEGAL_TRANSITION, e);
|
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE_ILLEGAL_TRANSITION, e);
|
||||||
|
|
||||||
|
System.out.println("session invalidated");
|
||||||
|
session.invalidate();
|
||||||
|
|
||||||
return "error";
|
return "error";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler(Exception.class)
|
@ExceptionHandler(Exception.class)
|
||||||
public String AllException(Model model, Exception e) {
|
public String AllException(Model model, Exception e, HttpSession session) {
|
||||||
model.addAttribute("error", SEVERE_ERROR_MESSAGE_BAD_REQUEST);
|
model.addAttribute("error", SEVERE_ERROR_MESSAGE_BAD_REQUEST);
|
||||||
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
||||||
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE_ILLEGAL_TRANSITION, e);
|
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE_ILLEGAL_TRANSITION, e);
|
||||||
|
|
||||||
|
System.out.println("session invalidated");
|
||||||
|
session.invalidate();
|
||||||
|
|
||||||
return "error";
|
return "error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public class ProfileServiceImpl implements ProfileService{
|
|||||||
userEntity.setSaving(profileEditForm.getSaving());
|
userEntity.setSaving(profileEditForm.getSaving());
|
||||||
userEntity.setAnnualIncome(profileEditForm.getAnnualIncome());
|
userEntity.setAnnualIncome(profileEditForm.getAnnualIncome());
|
||||||
userEntity.setMonthlyBudget(profileEditForm.getMonthlyBudget());
|
userEntity.setMonthlyBudget(profileEditForm.getMonthlyBudget());
|
||||||
|
userEntity.setBirthDate(profileEditForm.getBirthDate());
|
||||||
userRepository.save(userEntity);
|
userRepository.save(userEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,9 +54,11 @@ public class ProfileController {
|
|||||||
new ProfileEditForm(
|
new ProfileEditForm(
|
||||||
profileModel.getUserName(),
|
profileModel.getUserName(),
|
||||||
profileModel.getMailAddress(),
|
profileModel.getMailAddress(),
|
||||||
|
profileModel.getBirthDate(),
|
||||||
profileModel.getSaving(),
|
profileModel.getSaving(),
|
||||||
profileModel.getAnnualIncome(),
|
profileModel.getAnnualIncome(),
|
||||||
profileModel.getMonthlyBudget());
|
profileModel.getMonthlyBudget(),
|
||||||
|
profileModel.getBirthDate());
|
||||||
|
|
||||||
model.addAttribute(PageReturnAttributeKeyword.PROFILE_EDIT_FORM, profileEditForm);
|
model.addAttribute(PageReturnAttributeKeyword.PROFILE_EDIT_FORM, profileEditForm);
|
||||||
return TransitionTargetPageNameKeyword.PROFILE_EDIT_HTML;
|
return TransitionTargetPageNameKeyword.PROFILE_EDIT_HTML;
|
||||||
|
|||||||
@@ -238,6 +238,8 @@ public class TransactionController {
|
|||||||
|
|
||||||
model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM, transactionForm);
|
model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM, transactionForm);
|
||||||
|
|
||||||
|
session.setAttribute("tType", String.valueOf(transactionForm.getTransactionType()));
|
||||||
|
|
||||||
model.addAttribute(PageReturnAttributeKeyword.CATEGORY_FORM_LIST, categoryFormList);
|
model.addAttribute(PageReturnAttributeKeyword.CATEGORY_FORM_LIST, categoryFormList);
|
||||||
|
|
||||||
model.addAttribute(PageReturnAttributeKeyword.TODAY, today.format(DateTimeFormatter.ISO_LOCAL_DATE));
|
model.addAttribute(PageReturnAttributeKeyword.TODAY, today.format(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.example.demo.app.presentation.form;
|
package com.example.demo.app.presentation.form;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -10,7 +12,9 @@ import lombok.NoArgsConstructor;
|
|||||||
public class ProfileEditForm {
|
public class ProfileEditForm {
|
||||||
private String userName;
|
private String userName;
|
||||||
private String mailAddress;
|
private String mailAddress;
|
||||||
|
private LocalDate birthDate;
|
||||||
private Integer saving;
|
private Integer saving;
|
||||||
private Integer annualIncome;
|
private Integer annualIncome;
|
||||||
private Integer monthlyBudget;
|
private Integer monthlyBudget;
|
||||||
|
private LocalDate birthDate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,12 +10,6 @@
|
|||||||
<div th:replace="~{header :: header}">
|
<div th:replace="~{header :: header}">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div th:replace="~{header :: header}">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container text-center mt-5">
|
<div class="container text-center mt-5">
|
||||||
|
|
||||||
<h2 class="text-danger">
|
<h2 class="text-danger">
|
||||||
|
|||||||
@@ -83,6 +83,7 @@
|
|||||||
|
|
||||||
<div th:replace="~{footer :: footer}"></div>
|
<div th:replace="~{footer :: footer}"></div>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const transactionType = document.getElementById("transactionType");
|
const transactionType = document.getElementById("transactionType");
|
||||||
const categoryId = document.getElementById("categoryId");
|
const categoryId = document.getElementById("categoryId");
|
||||||
@@ -90,6 +91,7 @@
|
|||||||
const expenseList = document.getElementsByClassName("expenseListClass");
|
const expenseList = document.getElementsByClassName("expenseListClass");
|
||||||
const incomeList = document.getElementsByClassName("incomeListClass");
|
const incomeList = document.getElementsByClassName("incomeListClass");
|
||||||
|
|
||||||
|
|
||||||
transactionType.addEventListener("change", function () {
|
transactionType.addEventListener("change", function () {
|
||||||
|
|
||||||
if (this.value === "1") {
|
if (this.value === "1") {
|
||||||
|
|||||||
@@ -52,13 +52,15 @@
|
|||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
パスワード
|
生年月日
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<input type="password"
|
<input type="date"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
value="********"
|
id="birthDate"
|
||||||
disabled>
|
name="birthDate"
|
||||||
|
th:value="*{birthDate}"
|
||||||
|
required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
@@ -105,7 +107,7 @@
|
|||||||
<div class="d-grid">
|
<div class="d-grid">
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="btn btn-primary">
|
class="btn btn-primary">
|
||||||
確認
|
確定
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<title>コース選択</title>
|
<title>コース選択</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body style="padding-bottom: 120px">
|
||||||
<div th:replace="~{header :: header}"></div>
|
<div th:replace="~{header :: header}"></div>
|
||||||
|
|
||||||
<h1 class="page-title">コース選択</h1>
|
<h1 class="page-title">コース選択</h1>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
収入・支出
|
収入・支出
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<select id="transactionType" class="form-select" th:field="*{transactionType}" required>
|
<select id="transactionType" class="form-select" name="transactionType" required>
|
||||||
|
|
||||||
<option value="">
|
<option value="">
|
||||||
選択してください
|
選択してください
|
||||||
@@ -114,13 +114,22 @@
|
|||||||
|
|
||||||
<div th:replace="~{footer :: footer}"></div>
|
<div th:replace="~{footer :: footer}"></div>
|
||||||
|
|
||||||
<script>
|
<script inline="javascript">
|
||||||
const transactionType = document.getElementById("transactionType");
|
const transactionType = document.getElementById("transactionType");
|
||||||
const categoryId = document.getElementById("categoryId");
|
const categoryId = document.getElementById("categoryId");
|
||||||
|
|
||||||
const expenseList = document.getElementsByClassName("expenseListClass");
|
const expenseList = document.getElementsByClassName("expenseListClass");
|
||||||
const incomeList = document.getElementsByClassName("incomeListClass");
|
const incomeList = document.getElementsByClassName("incomeListClass");
|
||||||
|
|
||||||
|
const tType = '[[${session.tType}]]';
|
||||||
|
|
||||||
|
if (tType == "0") {
|
||||||
|
transactionType.value = 1;
|
||||||
|
} else {
|
||||||
|
transactionType.value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
transactionType.addEventListener("change", function () {
|
transactionType.addEventListener("change", function () {
|
||||||
|
|
||||||
if (this.value === "1") {
|
if (this.value === "1") {
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
|
|
||||||
<input type="hidden"
|
<input type="hidden"
|
||||||
name="today"
|
name="today"
|
||||||
|
id="today"
|
||||||
th:value="${today}">
|
th:value="${today}">
|
||||||
|
|
||||||
<button class="btn btn-success w-100"
|
<button class="btn btn-success w-100"
|
||||||
@@ -103,21 +104,49 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="d-grid mt-4">
|
||||||
|
|
||||||
|
<form th:action="@{/fixed-cost/list}" method="get">
|
||||||
|
|
||||||
|
<input type="hidden"
|
||||||
|
name="today"
|
||||||
|
id="today"
|
||||||
|
th:value="${today}">
|
||||||
|
|
||||||
|
<button class="btn btn-dark w-100"
|
||||||
|
type="submit">
|
||||||
|
|
||||||
|
固定費一覧
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form th:action="@{/transaction/create}" method="get">
|
<div class="d-grid mt-4">
|
||||||
<input type="hidden" name="today" id="today" th:value="${today}">
|
|
||||||
<button type="submit">新規登録</button>
|
<form th:action="@{/category/list}"
|
||||||
</form>
|
method="get">
|
||||||
<form th:action="@{/fixed-cost/list}" method="get">
|
|
||||||
<input type="hidden" name="today" th:value="${today}">
|
<input type="hidden"
|
||||||
<button type="submit">固定費一覧</button>
|
name="today"
|
||||||
</form>
|
id="today"
|
||||||
<form th:action="@{/category/list}" method="get">
|
th:value="${today}">
|
||||||
<input type="hidden" name="today" th:value="${today}">
|
|
||||||
<button type="submit">カテゴリ一覧</button>
|
<button class="btn btn-dark w-100"
|
||||||
|
type="submit">
|
||||||
|
|
||||||
|
カテゴリ一覧
|
||||||
|
|
||||||
|
</button>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div th:replace="~{footer :: footer}"></div>
|
<div th:replace="~{footer :: footer}"></div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user