Project1 : Spring Boot

박건희·2021년 9월 30일
0
  • thymeleaf

    • 문제상황

      • 상품 리스트 페이지에서 상품을 클릭하면 해당 상품 정보를 수정할 수 있는 페이지가 로드됨
      • 해당 페이지에서 폼을 작성하면, 해당 상품 정보가 DB에 update되야하고 다시 상품 리스트 페이지로 돌아가야함
    • 어려웠던 것

      • 상품 리스트 페이지의 상품 정보는 view에 전달된 model을 thymeleaf로 뿌려준것
      • model의 pk(productId)를 상품 수정 페이지로 전달하고, 이 페이지에서 form 제출시 해당 handler에게 pk를 전달해야 DB update 가능
      • thymeleaf 사용이 매우 미숙해서 List를 product로 반복하는 것 이후에 product의 속성을 접근해야하는 것을 몰랐음(Products에서 product 빼냄과 동시에 tr 태그에서 product.productId 접근하려 했음)
      • handler mapping이 잘 안되서 많이 헤맴(href 사용방식, pathvariable/queryParam 고민 등)
      • th(column)이 아니라 tr(line)을 클릭하면 상세페이지로 넘어가게 하고 싶었는데 tr에서 처리하지 못해서 productId가 있는 th에서 처리함
    • 해결과정

      • productId 클릭시 @PathVariable로 productId를 넘겨주고, modifyProduct()에서 Id 읽고 "modify-product" view에 model로 등록.
      • modify-product에서 model을 접근하고, form 제출시 model.productId를 다시 modifyProduct()로 전송
      • modifyProduct()에서 productId로 productService.update() 호출하여 정보 수정요청후 "product-list" 페이지로 redirect
    • 궁금한것
      • 위 문제에서 최선의 해결책
      • queryParam VS PathVariable
      • view redirect VS handler 연결

0개의 댓글