Mapper 설명
// 물품 번호를 전달 하면 해당하는 이미지의 번호들을 반환
public List<ItemImageDTO> selectImageList( Long itemno );
// selectItemOne( 전달 받는 값 )
// 반환값 ItemDTO
// 물품 번호가 전달되면 물품 정보를 반환
public ItemDTO selectItemOne(Long no);
Controller 설명
@Autowired
ItemMapper iMapper;
@Autowired
ItemImageMapper iiMapper;
@GetMapping(value = "/content.do")
public String contentGET(Model model,
@RequestParam(name = "itemno") Long no ){
// 물품 번호를 이용해서 정보 가져오기(mapper/itemMapper.java 에서.)
ItemDTO item = iMapper.selectItemOne(no);
// @Autowired 한 변수 iMapper로 selectItemOne을 가져오고
// 연결할 ItemDTO를 설정후 item 변수로 정보를 받음
System.out.println(item.toString()); // 변수에 정보가 들어 왔는지 확인함
// 물품 관련 이미지 전체 가져오기
// @Autowired 한 변수 iiMapper로 selectImageList 를 불러옴
// 연결할 LIST<ItemImageDTO> 로 설정 후 list 변수로 정보를 받음
List<ItemImageDTO> list = iiMapper.selectImageList(no);
System.out.println(list.toString()); // 변수에 정보가 들어 왔는지 확인함
model.addAttribute("obj", item);
model.addAttribute("rows", list);
return "content";
}
HTML 설명
<!DOCTYPE html>
<!--thymeleaf는 필수로 사용(브라우저 화면을 확인하고 띄우기 위해서)-->
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>상세</title>
</head>
<body>
<h3>물품상세</h3>
<form th:action="@{/customer/order.do}" method="post"> <!--물품 주문을 할 내용으로 이동-->
<p th:text="${obj.no}"></p>
<p th:text="${obj.name}"></p>
<p th:text="${obj.content}"></p>
<p th:text="|${obj.price} 원|"></p>
<div th:if="${not #lists.isEmpty(rows)}"> <!--이미지가 비어있지 않을때 -->
<th:block th:each="obj, idx : ${rows}">
<img th:src="@{/item_image(no=${obj.no})}" style="width:200px" />
</th:block>
</div>
<div th:if="${#lists.isEmpty(rows)}"> <!--이미지가 비어있을때 -->
<img th:src="@{/item_image(no=0)}" style="width:200px" />
</div>
<select>
<th:block th:each="tmp, idx : ${#numbers.sequence(1,100)}">
<option th:text="${tmp}" th:value="${tmp}"></option>
</th:block>
</select>
<input type="submit" value="주문하기" />
</form>
</body>
</html>