2 minute read

홈 화면과 레이아웃

타임리프 템플릿 자료는 깃헙에 추가


홈 컨트롤러 등록

@Controller
@Slf4j

public class HomeController{
    @RequestMApping("/")
    public String home(){
        log.info("home controller");
        return "home";
    } 
}


회원 등록 폼 객체

@Getter@Setter
public class Member Form{

    @NotEmpty(message = "회원 이름은 필수 입니다")
    private String name;

    private String city;
    private String street;
    private String zipcode;
}   


회원 등록 컨트롤러


@Controller
@RequiredArgsConstructor
public class MemberController {

    private final MemberService memberService;

    @GetMapping(value = "/members/new")
    public String createForm(Model model) {
        model.addAttribute("memberForm", new MemberForm());
        return "members/createMemberForm";
    }

    @PostMapping(value = "/members/new")
    public String create(@Valid MemberForm form, BindingResult result) {
        if (result.hasErrors()) {
            return "members/createMemberForm";}

        Address address = new Address(form.getCity(), 
        form.getStreet(),
        form.getZipcode());
        Member member = new Member();
        member.setName(form.getName());
        member.setAddress(address);
        memberService.join(member);
        return "redirect:/";  
    }
}


회원 목록조회 컨트롤러

@Controller
@RequiredArgsConstructor
public class MemberController {

@GetMapping(value = "/members") 
public String list(Model model) {
          List<Member> members = memberService.findMembers();
          model.addAttribute("members", members);
           return "members/memberList";
      }
}


상품 등록 폼

@Getter @Setter

    public class BookForm {
        private Long id;
        private String name;
        private int price;
        private int stockQuantity;
        private String author;
        private String isbn;
}


상품 등록 컨트롤러

@Controller
@RequiredArgsConstructor
  public class ItemController {
      private final ItemService itemService;

      @GetMapping(value = "/items/new")

      public String createForm(Model model) {
          model.addAttribute("form", new BookForm());
          return "items/createItemForm";
      }

      @PostMapping(value = "/items/new")
      public String create(BookForm form) {
          Book book = new Book();
          book.setName(form.getName());
          book.setPrice(form.getPrice());
          book.setStockQuantity(form.getStockQuantity());
          book.setAuthor(form.getAuthor());
          book.setIsbn(form.getIsbn());
          itemService.saveItem(book);

          return "redirect:/items";
      }
}


상품 목록 컨트롤러

    @Controller
    @RequiredArgsConstructor
    public class ItemController {
   
     private final ItemService itemService;
    
     @GetMapping(value = "/items")
      public String list(Model model) {
          List<Item> items = itemService.findItems();
          model.addAttribute("items", items);
          return "items/itemList";
}
}


상품 수정

@Controller
@RequiredArgsConstructor
public class ItemController {

    @GetMapping(value = "/items/{itemId}/edit")
    public String updateItemForm(@PathVariable("itemId") Long itemId, Model
model) {
       
        Book item = (Book) itemService.findOne(itemId);
        BookForm form = new BookForm();
        form.setId(item.getId());
        form.setName(item.getName());
        form.setPrice(item.getPrice());
        form.setStockQuantity(item.getStockQuantity());
        form.setAuthor(item.getAuthor());
        form.setIsbn(item.getIsbn());
        model.addAttribute("form", form);
        return "items/updateItemForm";
    }


    @PostMapping(value = "/items/{itemId}/edit")
    public String updateItem(@ModelAttribute("form") BookForm form) {
        Book book = new Book();
        book.setId(form.getId());
        book.setName(form.getName());
        book.setPrice(form.getPrice());
        book.setStockQuantity(form.getStockQuantity());
        book.setAuthor(form.getAuthor());
        book.setIsbn(form.getIsbn());
        itemService.saveItem(book);
        return "redirect:/items";
      }
}


상품 주문 컨트롤러

@Controller
@RequiredArgsConstructor
  public class OrderController {

      private final OrderService orderService;
      private final MemberService memberService;
      private final ItemService itemService;

      @GetMapping(value = "/order")
      public String createForm(Model model) {
          List<Member> members = memberService.findMembers();
          List<Item> items = itemService.findItems();
          model.addAttribute("members", members);
          model.addAttribute("items", items);
          return "order/orderForm";
      }

      @PostMapping(value = "/order")
      public String order(@RequestParam("memberId") Long memberId,
  @RequestParam("itemId") Long itemId, @RequestParam("count") int count) {
          orderService.order(memberId, itemId, count);
          return "redirect:/orders";
      }
  }

주문 목록 검색 컨트롤러

@Controller
@RequiredArgsConstructor
  public class OrderController {

      @GetMapping(value = "/orders")
      public String orderList(@ModelAttribute("orderSearch") OrderSearch
  orderSearch, Model model) {

          List<Order> orders = orderService.findOrders(orderSearch);
          model.addAttribute("orders", orders);
          return "order/orderList";
      }
}


## 주문 취소

 @Controller
@RequiredArgsConstructor
  public class OrderController {

      @PostMapping(value = "/orders/{orderId}/cancel")
      public String cancelOrder(@PathVariable("orderId") Long orderId) {
          orderService.cancelOrder(orderId);
          return "redirect:/orders";
}
}

댓글남기기