210317 - 47일차

Structure of Knowledge·2021년 3월 17일
0
  • 아임포트 결제 api 를 연동시켰음. 결제Api 구현
  • 위시리스트 구현 위시리스트 구현
  • 컨트롤러에서 컨트롤러로 이동해야할 경우, "forward:~"와 "redirect:~"의 차이점.
    : 위시리스트를 구현하면서 위시리스트의 상품을 장바구니로 옮길 때, 처음에는 바로 장바구니 서비스의 컨트롤러로 이동했었다. 오늘 이동한 상품을 위시테이블에서 지우기 위해 위시서비스의 컨트롤러로 이동후 다시 장바구니 서비스의 컨트롤러로 이동하는 로직을 짜게 되었다. 이 부분에서 데이터를 전달해주기 위해 "forward"방식으로 컨트롤러 간의 이동을 했었는데, 404 에러를 마주하게 되었다.
  • forward와 redirect의 차이점 : https://iamyourfavorite.tistory.com/157
@RequestMapping("wishList")
....
@GetMapping("moveCart.do")
public String moveCart(CartVo cartVo, Authentication auth) {
	MemberDetails memberDetails = (MemberDetails) auth.getPrincipal();
	WishVo wishVo = new WishVo(cartVo.getItemId(), memberDetails.getUsername());
	service.removeItem(wishVo);
	log.info(cartVo);
	return "forward:../purchase/add.do";
}

@RequestMapping("purchase")
...
@RequestMapping("add.do")
public String addtoCart(CartVo cartVo, HttpSession session) {
	log.info(cartVo);
	List<CartVo> list = null;
	Object listObj=session.getAttribute("list");
	if(listObj==null) {
		list = new ArrayList<CartVo>();
	}else {
		list=(List<CartVo>)listObj;
	}
	String itemId= cartVo.getItemId();
	Book book= service.getBook(itemId);
	log.info(book);
	cartVo.setBook(book);
	int vol=cartVo.getVol();
	long price= book.getB_price();
	long total= vol*price;
	cartVo.setBook(book);
	cartVo.setTotal(total);
	list.add(cartVo);
	session.setAttribute("list",list);
		
	//CartListResult cartLR = new CartListResult(book,cartVo);
	//session.setAttribute("cartLR",cartLR);
		
	//return listCart(session);
   	
    	return "redirect:cart.do"; // 이렇게 매핑했을 때, wishList/cart.do 로 이동함
	return "redirect:../purchase/cart.do"; // 의도한대로 이동함.
}
profile
객체와 제어, 비전공자 개발자 되기

0개의 댓글