김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프론트앤드
  • 자바공부
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • 코딩공부 #자바공부
  • 백앤드
  • http에러메세지
  • 풀스택
  • web.xml수정
  • 객체지향프로그래밍
  • 자바
  • HTML공부
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 코딩
  • ErrorPage
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 코딩공부
  • 개발자
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • httperror

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환
⁂ MyBatis Framework/: 기본 익히기

[MyBatis3] #4-6 파일 업로드 및 댓글 게시판 만들기 : 상품 상세보기 페이지

⁂ MyBatis Framework/: 기본 익히기

[MyBatis3] #4-6 파일 업로드 및 댓글 게시판 만들기 : 상품 상세보기 페이지

2022. 11. 11. 13:04

 

확장 프로그램 설치하기!

 

[Eclipse]이클립스 MyBatipse 플러그인 설치 및 기능

MyBatipse 플러그인 공식 사이트 : https://github.com/mybatis/mybatipse MyBatis 관련 파일(XML ...

blog.naver.com

 

상품 상세보기는 상품이 갖고 있는 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
    '⁂ MyBatis Framework/: 기본 익히기' 카테고리의 다른 글
    • [MyBatis3] #4-8 파일 업로드 및 댓글 게시판 만들기 : 수정 기능 넣기
    • [MyBatis3] #4-7 파일 업로드 및 댓글 게시판 만들기 : 삭제 기능 넣기
    • [MyBatis3] #4-5 파일 업로드 및 댓글 게시판 만들기 : 검색 기능 넣기
    • [MyBatis3] #4-4 파일 업로드 및 댓글 게시판 만들기 : 상품 등록 페이지
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.