확장 프로그램 설치하기!
상품 상세보기는 상품이 갖고 있는 product_code 로 접근을 하려 한다.
1. Model
* 짚고 넘어갈 뽀인트
- xml에 sql문 구현(MyBatis 활용) : #{변수명}들은 DAO에서 넘어옴.
- 한 줄만 불러올 것이기 때문에 DAO 에서는 Map만 사용
1) product.xml
<select id="detail" resultType="java.util.Map">
SELECT product_code, product_name, description, price, filename, filesize
FROM product
WHERE product_code = #{product_code}
</select>
2) productDAO.java
public Map<String, Object> detail(String product_code) {
return sqlSession.selectOne("product.detail", product_code);
} // search() end
2. View
* 짚고 넘어갈 뽀인트
- 코드를 잘 살펴보기만 하면 될 듯!
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>detail.jsp</title>
<script src="/js/jquery-3.6.1.min.js"></script>
<link href="../css/main.css" rel="stylesheet" type="text/css">
<script>
function product_update(){
document.form1.action="/product/update";
document.form1.submit();
} // product_update() end
function product_delete(){
if(confirm("영구히 삭제됩니다\n진행할까요?")){
document.form1.action="/product/delete";
document.form1.submit();
}// if end
} // product_delete() end
</script>
</head>
<body>
<h3>상품 상세보기 / 상품 수정 / 상품 삭제</h3>
<p>
<button type="button" onclick="location.href='list'">상품전체목록</button>
</p>
<form name="form1" method="post" enctype="multipart/form-data">
<table border="1">
<tr>
<td>상품명</td>
<td><input type="text" name="product_name" value="${product.PRODUCT_NAME}"></td>
</tr>
<tr>
<td>상품가격</td>
<td><input type="number" name="price" value="${product.PRICE}"></td>
</tr>
<tr>
<td>상품설명</td>
<td>
<textarea rows="5" cols="60" name="description">${product.DESCRIPTION}</textarea>
</td>
</tr>
<tr>
<td>상품사진</td>
<td>
<c:if test="${product.FILENAME != '-'}">
<img src="/storage/${product.FILENAME}" width="100px">
</c:if>
<br>
<input type="file" name="img">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="hidden" name="product_code" value="${product.PRODUCT_CODE}">
<input type="button" value="상품수정" onclick="product_update()">
<input type="button" value="상품삭제" onclick="product_delete()">
</td>
</tr>
</table>
</form>
<hr>
<!-- 댓글 -->
</body>
</html>
3. Controller
* 짚고 넘어갈 뽀인트
- detail 명령어 생성
- @RequestParam과 @PathVariable 어노테이션의 차이는 주석 참고
@RequestMapping("/detail/{product_code}")
public ModelAndView detail(@PathVariable String product_code) {
ModelAndView mav = new ModelAndView();
mav.setViewName("product/detail");
mav.addObject("product", productDao.detail(product_code));
return mav;
} // detail() end
/*
* @RequestParam
* http://192.168.0.1:9095?aaa=bbb&ccc=ddd
*
* @PathVariable
* http://192.168.0.1:9095/bbb/ddd
*/
'⁂ MyBatis Framework > : 기본 익히기' 카테고리의 다른 글
[MyBatis3] #4-8 파일 업로드 및 댓글 게시판 만들기 : 수정 기능 넣기 (0) | 2022.11.11 |
---|---|
[MyBatis3] #4-7 파일 업로드 및 댓글 게시판 만들기 : 삭제 기능 넣기 (0) | 2022.11.11 |
[MyBatis3] #4-5 파일 업로드 및 댓글 게시판 만들기 : 검색 기능 넣기 (0) | 2022.11.11 |
[MyBatis3] #4-4 파일 업로드 및 댓글 게시판 만들기 : 상품 등록 페이지 (0) | 2022.11.11 |
[MyBatis3] #4-3 파일 업로드 및 댓글 게시판 만들기 : 상품 목록 페이지 (0) | 2022.11.11 |