adminlayout페이지를 만든 후 기능에 따라 해당화면에 추가해서 사용하도록 만들었다.
먼저 주식 정보를 저장하고 확인하는 부분을 구현해보자
@GetMapping("/update/stockinfo")
public String updateStockInfoPage() {
return "update_stockinfo";
}
@PostMapping("/update/stockinfo")
public String updateStockInfo(@RequestParam(name = "baseDate") String baseDate, Model model) {
if(baseDate == null || baseDate.equals("")) {
model.addAttribute("error", "날짜를 입력하세요.");
return "update_stockinfo";
}
LocalDate baseDates = LocalDate.parse(baseDate, java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate today = LocalDate.now();
if (baseDates.isAfter(today)) {
model.addAttribute("error", baseDate + "는 미래의 날짜입니다.");
return "update_stockinfo";
}
stockDataLoader.loadStockInfoByBaseDate(baseDate.replaceAll("-", ""));
return "redirect:/admin/stockinfo";
}
baseDate는 달력을 이용해서 값을 받아온다. 빈칸으로 버튼을 클릭하면 오류가 발생하기 때문에 해당 부분을 처리하였고, 추가적으로 미래날짜에 대하여 오류메세지를 추가하였다. 이 후, 성공했을 경우 주식 정보 페이지로 이동한다.
@GetMapping("/stockinfo")
public String showStockInfo(Model model) {
List<StockInfo> stocks = stockDataLoader.getStockInfo();
model.addAttribute("stocks", stocks);
model.addAttribute("totalStocks", stocks.size());
return "stockinfo";
}