728x90
수업내용
1교시 (09:30-10:20)
- JOIN
SELECT A.*
FROM DEPT A
,(SELECT DEPTNO FROM EMP WHERE ENAME='SMITH') B
WHERE A.DEPTNO = B.DEPTNO;
-- SCOTT과 동일한 부서에 근무하는 사원의 이름, 부서번호를 조회하시오
SELECT *
FROM EMP
WHERE ENAME = 'SCOTT';
SELECT ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME='SMITH');
-- SCOTT과 동일한 부서에 근무하는 사원의 이름, 부서명, 부서번호를 조회하시오
SELECT A.ENAME, B.DNAME, B.DEPTNO
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
AND B.DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'SCOTT');
2교시 (10:30-11:20)
- JOIN
-- 최대급여를 받는 사원의 이름, 담당업무, 급여를 조회하시오
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL = (SELECT MAX(SAL) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL = (SELECT MIN(SAL) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL >= (SELECT AVG(SAL) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL <= (SELECT AVG(SAL) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL <= (SELECT CEIL(AVG(SAL)) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL <= (SELECT ROUND(AVG(SAL)) FROM EMP);
SELECT A.ENAME, A.JOB, A.SAL
FROM EMP A
WHERE A.SAL <= (SELECT FLOOR(AVG(SAL)) FROM EMP);
-- 30번 부서에서 최저 급여를 받는 사람은?
SELECT A.ENAME
FROM EMP A
WHERE A.SAL = (SELECT MIN(SAL) FROM EMP WHERE DEPTNO = 30);
-- 부서 별 최저 급여를 조회하시오
SELECT A.DEPTNO, MIN(A.SAL)
FROM EMP A
GROUP BY A.DEPTNO;
SELECT A.DEPTNO, MIN(A.SAL)
FROM EMP A
GROUP BY A.DEPTNO
HAVING DEPTNO = 30;
SELECT ENAME FROM EMP
WHERE SAL = (
SELECT MIN(A.SAL)
FROM EMP A
GROUP BY A.DEPTNO
HAVING DEPTNO = 30);
3교시 (11:30-12:20)
- 카트 만들기 및 카트에 상품 넣기 기능에 대한 설명
4교시 (12:30-13:20)
상품 상세 페이지 만들기
- spring_chabun.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="a.b.c.com.kosmo.common.dao.SpringChabunDAO">
<select id="getProductChabun" resultType="kosmoproductvo">
SELECT /*+ INDEX_DESC(A SYS_C0012888) */ NVL(MAX(SUBSTR(A.KPNUM, -4)), 0) + 1 KPNUM FROM KOSMO_PRODUCT A
</select>
</mapper>
- mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="a.b.c.com.kosmo.product.vo.KosmoProductVO" alias="kosmoproductvo"/>
<typeAlias type="a.b.c.com.kosmo.cart.vo.KosmoCartVO" alias="kosmocartvo" />
</typeAliases>
</configuration>
- spring_product.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="a.b.c.com.kosmo.product.dao.KosmoProductDAO">
<insert id="kosmoProductInsert" parameterType="kosmoproductvo" >
INSERT INTO KOSMO_PRODUCT ( KPNUM
,KPID
,KPNAME
,KPCOMPANY
,KPFILE
,KPCNT
,KPPRICE
,KPDESC
,DELETEYN
,INSERTDATE
,UPDATEDATE)
VALUES( #{kpnum}
,#{kpid}
,#{kpname}
,#{kpcompany}
,#{kpfile}
,#{kpcnt}
,#{kpprice}
,#{kpdesc}
,'Y'
,SYSDATE
,SYSDATE)
</insert>
<select id="kosmoProductSelectAll" parameterType="kosmoproductvo" resultType="kosmoproductvo">
SELECT * FROM (
SELECT A.KPNUM KPNUM
,A.KPID KPID
,A.KPNAME KPNAME
,A.KPCOMPANY KPCOMPANY
,A.KPFILE KPFILE
,A.KPCNT KPCNT
,A.KPPRICE KPPRICE
,A.KPDESC KPDESC
,A.DELETEYN DELETEYN
,TO_CHAR(A.INSERTDATE, 'YYYY-MM-DD') INSERTDATE
,TO_CHAR(A.UPDATEDATE, 'YYYY-MM-DD') UPDATEDATE
<!-- ? : 페이지 사이즈 : pageSize -->
,CEIL(ROW_NUMBER() OVER(ORDER BY A.KPNUM) / #{pageSize} ) pageSize
,COUNT(A.KPNUM) OVER() AS totalCount
FROM KOSMO_PRODUCT A
WHERE A.DELETEYN = 'Y'
<!-- ? : 현재 페이지 : curPage -->
) WHERE pageSize = #{curPage}
</select>
<select id="kosmoProductSelect" parameterType="kosmoproductvo" resultType="kosmoproductvo">
SELECT A.KPNUM KPNUM
,A.KPID KPID
,A.KPNAME KPNAME
,A.KPCOMPANY KPCOMPANY
,A.KPFILE KPFILE
,A.KPCNT KPCNT
,A.KPPRICE KPPRICE
,A.KPDESC KPDESC
,A.DELETEYN DELETEYN
,TO_CHAR(A.INSERTDATE, 'YYYY-MM-DD') INSERTDATE
,TO_CHAR(A.UPDATEDATE, 'YYYY-MM-DD') UPDATEDATE
FROM KOSMO_PRODUCT A
WHERE A.DELETEYN = 'Y'
AND A.KPNUM = #{kpnum}
</select>
</mapper>
5교시 (14:30-15:20)
상품 상세 페이지 만들기
- NumUtil.java
package a.b.c.com.kosmo.common;
import java.text.DecimalFormat;
public class NumUtil {
public static String comma(String s) {
int iS = Integer.parseInt(s);
return new DecimalFormat("###,###").format(iS);
}
public static String comma_replace(String s) {
int iS = Integer.parseInt(s);
return new DecimalFormat("###,###").format(iS);
}
public static void main(String args[]) {
System.out.println(NumUtil.comma("5000"));
}
}
- KosmoProductDAO.java
package a.b.c.com.kosmo.product.dao;
import java.util.List;
import a.b.c.com.kosmo.product.vo.KosmoProductVO;
public interface KosmoProductDAO {
public int kosmoProductInsert(KosmoProductVO kpvo);
public List<KosmoProductVO> kosmoProductSelectAll(KosmoProductVO kpvo);
public List<KosmoProductVO> kosmoProductSelect(KosmoProductVO kpvo);
}
- KosmoProductDAOImpl.java
package a.b.c.com.kosmo.product.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import a.b.c.com.kosmo.product.vo.KosmoProductVO;
@Repository
public class KosmoProductDAOImpl implements KosmoProductDAO {
Logger logger = LogManager.getLogger(KosmoProductDAOImpl.class);
@Autowired(required=false)
private SqlSession sqlSession;
@Override
public int kosmoProductInsert(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductDAOImpl kosmoProductInsert 함수 진입 >>> : ");
return (Integer)sqlSession.insert("kosmoProductInsert", kpvo);
}
@Override
public List<KosmoProductVO> kosmoProductSelectAll(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductDAOImpl kosmoProductSelectAll 함수 진입 >>> : ");
return sqlSession.selectList("kosmoProductSelectAll", kpvo);
}
@Override
public List<KosmoProductVO> kosmoProductSelect(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductDAOImpl kosmoProductSelect 함수 진입 >>> : ");
return sqlSession.selectList("kosmoProductSelect", kpvo);
}
}
6교시 (15:30-16:20)
상품 상세 페이지 만들기
- KosmoProductService.java
package a.b.c.com.kosmo.product.service;
import java.util.List;
import a.b.c.com.kosmo.product.vo.KosmoProductVO;
public interface KosmoProductService {
public int kosmoProductInsert(KosmoProductVO kpvo);
public List<KosmoProductVO> kosmoProductSelectAll(KosmoProductVO kpvo);
public List<KosmoProductVO> kosmoProductSelect(KosmoProductVO kpvo);
}
- KosmoProductServiceimpl.java
package a.b.c.com.kosmo.product.service;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import a.b.c.com.kosmo.product.vo.KosmoProductVO;
import a.b.c.com.kosmo.product.dao.KosmoProductDAO;
@Service
@Transactional
public class KosmoProductServiceImpl implements KosmoProductService {
Logger logger = LogManager.getLogger(KosmoProductServiceImpl.class);
// 서비스에서 DAO 연결하기
// 필드 @Autowired 어노테이션으로 DI (의존성 주입하기)
@Autowired(required=false)
private KosmoProductDAO kosmoProductDAO;
@Override
public int kosmoProductInsert(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductServiceImpl kosmoProductInsert 함수 진입 >>> : ");
return kosmoProductDAO.kosmoProductInsert(kpvo);
}
@Override
public List<KosmoProductVO> kosmoProductSelectAll(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductServiceImpl kosmoProductSelectAll 함수 진입 >>> : ");
return kosmoProductDAO.kosmoProductSelectAll(kpvo);
}
@Override
public List<KosmoProductVO> kosmoProductSelect(KosmoProductVO kpvo) {
// TODO Auto-generated method stub
logger.info("KosmoProductServiceImpl kosmoProductSelect 함수 진입 >>> : ");
return kosmoProductDAO.kosmoProductSelect(kpvo);
}
}
- KosmoProductController.java
package a.b.c.com.kosmo.product.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import a.b.c.com.kosmo.common.ChabunUtil;
import a.b.c.com.kosmo.common.CommonUtils;
import a.b.c.com.kosmo.common.FileUploadUtil;
import a.b.c.com.kosmo.common.service.SpringChabunService;
import a.b.c.com.kosmo.product.service.KosmoProductService;
import a.b.c.com.kosmo.product.vo.KosmoProductVO;
@Controller
public class KosmoProductController {
Logger logger = LogManager.getLogger(KosmoProductController.class);
// 필드 오토와이어드
@Autowired(required=false)
private SpringChabunService springChabunService;
// 필드 오토와이어드
@Autowired(required=false)
private KosmoProductService kosmoProductService;
// 상품 입력 폼
@RequestMapping(value="kosmoProductInsertForm", method=RequestMethod.GET)
public String kosmoProductInsertForm() {
logger.info("KosmoProductController kosmoProductInsertForm 함수 진입 >>> : ");
return "product/kosmoProductInsertForm";
}
// 상품 입력
@RequestMapping(value="kosmoProductInsert", method=RequestMethod.POST)
public String kosmoProductInsert(HttpServletRequest req) {
logger.info("KosmoProductController kosmoProductInsert 함수 진입 >>> ");
// 채번 구하기
String kpnum = ChabunUtil.getProductChabun("D", springChabunService.getProductChabun().getKpnum());
logger.info("KosmoProductController kosmoProductInsertForm kpnum >>> : " + kpnum);
// 이미지 업로드
FileUploadUtil fu = new FileUploadUtil( CommonUtils.PRODUCT_IMG_UPLOAD_PATH
,CommonUtils.PRODUCT_IMG_FILE_SIZE
,CommonUtils.PRODUCT_EN_CODE);
// 이미지 파일 원본 사이즈
boolean bool = fu.imgfileUpload(req);
// 이미지 파일 원본 사이즈 크기 조절 하기
// boolean bool = fu.imgfileUploadSize(req);
logger.info("KosmoProductController kosmoProductInsert bool >>> : " + bool);
KosmoProductVO _kpvo = null;
_kpvo = new KosmoProductVO();
_kpvo.setKpnum(kpnum);
_kpvo.setKpid(fu.getParameter("kpid"));
_kpvo.setKpname(fu.getParameter("kpname"));
_kpvo.setKpcompany(fu.getParameter("kpcompany"));
_kpvo.setKpfile(fu.getFileName("kpfile"));
_kpvo.setKpcnt(fu.getParameter("kpcnt"));
_kpvo.setKpprice(fu.getParameter("kpprice"));
_kpvo.setKpdesc(fu.getParameter("kpdesc"));
int nCnt = kosmoProductService.kosmoProductInsert(_kpvo);
logger.info("KosmoProductController kosmoProductInsert nCnt >>> : " + nCnt);
if (nCnt > 0) { return "product/kosmoProductInsert"; }
return "product/kosmoProductInsertForm";
}
// 상품 목록 페이징 조회
@RequestMapping(value="kosmoProductSelectAll", method=RequestMethod.GET)
public String kosmoProductSelectAll(KosmoProductVO kpvo, Model model) {
logger.info("KosmoProductController kosmoProductSelectAll 함수 진입 >>> : ");
// 페이징 처리 ===================================================
int pageSize = CommonUtils.PRODUCT_PAGE_SIZE;
int groupSize = CommonUtils.PRODUCT_GROUP_SIZE;
int curPage = CommonUtils.PRODUCT_CUR_PAGE;
int totalCount = CommonUtils.PRODUCT_TOTAL_COUNT;
if (kpvo.getCurPage() != null) {
curPage = Integer.parseInt(kpvo.getCurPage());
}
kpvo.setPageSize(String.valueOf(pageSize));
kpvo.setGroupSize(String.valueOf(groupSize));
kpvo.setCurPage(String.valueOf(curPage));
kpvo.setTotalCount(String.valueOf(totalCount));
logger.info("KosmoProductController kosmoProductSelectAll kpvo.getPageSize() >>> : " + kpvo.getPageSize());
logger.info("KosmoProductController kosmoProductSelectAll kpvo.getGroupSize() >>> : " + kpvo.getGroupSize());
logger.info("KosmoProductController kosmoProductSelectAll kpvo.getCurPage() >>> : " + kpvo.getCurPage());
logger.info("KosmoProductController kosmoProductSelectAll kpvo.getTotalCount() >>> : " + kpvo.getTotalCount());
// 페이징 처리 ===================================================
// 서비스 호출
List<KosmoProductVO> listAll = kosmoProductService.kosmoProductSelectAll(kpvo);
if (listAll.size() > 0) {
logger.info("KosmoProductController kosmoProductSelectAll listAll.size() >>> : " + listAll.size());
model.addAttribute("pagingKPVO", kpvo);
model.addAttribute("listAll", listAll);
return "product/kosmoProductSelectAll";
}
return "product/kosmoProductInsertForm";
}
// 상품 조회
@RequestMapping(value="kosmoProductSelect", method=RequestMethod.GET)
public String kosmoProductSelect(KosmoProductVO kpvo, Model model) {
logger.info("KosmoProductController kosmoProductSelect 함수 진입 >>> : ");
// 상품번호 확인해보기
logger.info("KosmoProductController kosmoProductSelect 함수 진입::: kpvo.getKpnum() >>> : " + kpvo.getKpnum());
// 서비스 호출
List<KosmoProductVO> listS = kosmoProductService.kosmoProductSelect(kpvo);
if (listS.size() > 0) {
logger.info("KosmoProductController kosmoProductSelectAll listS.size() >>> : " + listS.size());
model.addAttribute("listS", listS);
return "product/kosmoProductSelect";
}
return "product/kosmoProductSelectAll";
}
}
7교시 (16:30-17:20)
상품 상세 페이지 만들기
- kosmoProductSelectAll.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="a.b.c.com.kosmo.product.vo.KosmoProductVO" %>
<%@ page import="java.util.List" %>
<%@ page import="a.b.c.com.kosmo.common.NumUtil" %>
<% request.setCharacterEncoding("UTF-8");%>
<%
//페이징 변수 세팅
int pageSize = 0;
int groupSize = 0;
int curPage = 0;
int totalCount = 0;
Object objPaging = request.getAttribute("pagingKPVO");
KosmoProductVO pagingKPVO = (KosmoProductVO)objPaging;
Object obj = request.getAttribute("listAll");
List<KosmoProductVO> list = (List<KosmoProductVO>)obj;
int nCnt = list.size();
System.out.println("nCnt >>> : " + nCnt);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/kosmoSpring/js/common.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript">
$(document).ready(function(){
});
</script>
<style type="text/css">
th {
text-align: center;
}
</style>
</head>
<body>
<h3 align="center">상품목록</h3>
<hr>
<form name="productList" id="productList">
<table border="1" align="center">
<thead>
<tr>
<th>사진</td>
<th>내용</td>
<th>가격</td>
</tr>
</thead>
<%
String kpnum = "";
String kpprice = "";
for (int i=0; i<nCnt; i++) {
KosmoProductVO _kpvo = list.get(i);
kpnum = _kpvo.getKpnum();
kpprice = _kpvo.getKpprice();
kpprice = NumUtil.comma(kpprice);
// 페이징 세팅
pageSize = Integer.parseInt(pagingKPVO.getPageSize());
groupSize = Integer.parseInt(pagingKPVO.getGroupSize());
curPage = Integer.parseInt(pagingKPVO.getCurPage());
totalCount = Integer.parseInt(_kpvo.getTotalCount());
%>
<tbody>
<tr>
<td rowspan="5" align="center" style="width:100px;">
<img src="/kosmoSpring/fileupload/product/<%= _kpvo.getKpfile() %>" width="50" height="50"
onclick="location.href='kosmoProductSelect.k?kpnum=<%= kpnum %>'"><br>
<%= _kpvo.getKpid() %>
</td>
<td align="left" style="width:300px;">상품번호 : <%= kpnum %></td>
<td rowspan="5" align="center" vertical-align="middle" style="width:150px;">
<%= kpprice %>
<a href="kosmoProductSelect.k?kpnum=<%= kpnum %>">
<img src="/kosmoSpring/img/img_mandu/ase.gif" width="25" height="25" alt="image">
</a>
</td>
</tr>
<tr>
<td>상품이름 : <%= _kpvo.getKpname() %></td>
</tr>
<tr>
<td>상품설명 : <%= _kpvo.getKpdesc() %></td>
</tr>
<tr>
<td>제조사 : <%= _kpvo.getKpcompany() %></td>
</tr>
<tr>
<td>상품 등록일 : <%= _kpvo.getInsertdate() %></td>
</tr>
<%
} //end of for
%>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<jsp:include page="productPaging.jsp" flush="true">
<jsp:param name="url" value="kosmoProductSelectAll.k"/>
<jsp:param name="str" value=""/>
<jsp:param name="pageSize" value="<%=pageSize%>"/>
<jsp:param name="groupSize" value="<%=groupSize%>"/>
<jsp:param name="curPage" value="<%=curPage%>"/>
<jsp:param name="totalCount" value="<%=totalCount%>"/>
</jsp:include>
</td>
</tr>
</tfoot>
</table>
</form>
</body>
</html>
- kosmoProductSelect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="a.b.c.com.kosmo.product.vo.KosmoProductVO" %>
<%@ page import="java.util.List" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%
Object obj = request.getAttribute("listS");
List<KosmoProductVO> list = (List)obj;
String kpprice = "";
KosmoProductVO _kpvo = null;
if (list.size() == 1) {
_kpvo = list.get(0);
kpprice = _kpvo.getKpprice();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/kosmoSpring/js/common.js"></script>
<script src="http://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(function(){
// 경매 끝나는 시간
const action_end_time = 2000;
// 현재 시간
const current_time = 1100;
// 경매 남은 시간
var time = action_end_time - current_time;
var min = "";
var sec = "";
// setInterval('', 천분에일초);
// setInterval(function(), 1000); // 1초에 한번씩 invoke(호출) 하시오
var x = setInterval(function(){
min = parseInt(time / 60);
hour = parseInt(min / 60);
sec = time % 60;
min = min % 60;
document.getElementById("time").innerHTML = hour + "시" + min + "분" + sec + "초";
time--;
if (time < 0){
clearInterval(x)
document.getElementById("time").innerHTML = "시간초과";
}
}, 1000);
});
let kpprice = '<%= kpprice %>';
kpprice = comma(kpprice);
console.log(kpprice);
$('#kpprice').val(kpprice);
$(document).on('change', '#kpcnt', function(){
alert('kpcnt >>> : ')
let cntS = $('#kpcnt').val();
alert("cntS >>> : " + cntS);
let kppriceSum = comma_replace(kpprice) * cntS;
$('#kppricesum').val(comma(kppriceSum));
});
$(document).on('click', '#cartBtn', function(){
alert('cartBtn >>> : ');
let kpcntV = $('#kpcnt').val();
alert("kpcntV >>> : " + kpcntV);
let priceSum = $('#kppricesum').val();
alert("priceSum >>> : " + priceSum);
if (kpcntV == 0 && priceSum == 0){
alert("상품을 수량을 선택하시오 !!!");
return;
}
$('#productSelectForm').attr({"action":"kosmoCartInsert.k","method":"GET"}).submit();
$('#productSelectForm').attr({"action":"kosmoCartInsert.k", "method":"GET"}).submit();
});
$(document).on('click', '#stockBtn', function(){
alert('stockBtn >>> : ');
});
$(document).on('click', '#buyBtn', function(){
alert('buyBtn >>> : ');
});
});
</script>
<style type="text/css">
table {
margin: 20px auto;
}
table, td, th {
border-collapse : collapse;
border: 1px solid black;
}
</style>
</head>
<body>
<h3>kosmoProductSelect.jsp</h3>
<hr>
<div>
<form name="productSelectForm" id="productSelectForm">
<table>
<tr>
<td rowspan="7" align="center" vertical-align="middle" style="width:200px;">
<img src="/kosmoSpring/fileupload/product/<%= _kpvo.getKpfile() %>" width="130" height="130">
</td>
<td align="center" colspan="2" >
<input type="text" name="kpname" id="kpname" value="<%= _kpvo.getKpname() %>"
style="width:300px;text-align:center;" readonly />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="text" name="kpprice" id="kpprice" value="<%= kpprice %>"
style="width:280px;text-align:right;" readonly /> 원
</td>
</tr>
<tr>
<td><label align="left">수량 :</label></td>
<td align="right">
<select name="kpcnt" id="kpcnt" style="width:200px;">
<option value="0">수량</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
</tr>
<tr>
<td><label align="left">총 합계 :</label> </td>
<td align="right">
<input type="text" name="kppricesum" id="kppricesum" value="0"
style="width:170px;text-align:right;" readonly /> 원
</td>
</tr>
<tr>
<td><label align="left">시간 : </label></td>
<td align="right">
<font size="5" style="color:red;"><span id="time"></span></font>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="hidden" name="kpfile" id="kpfile" value="<%= _kpvo.getKpfile() %>" >
<input type="hidden" name="kpid" id="kpid" value="<%= _kpvo.getKpid() %>" >
<input type="hidden" name="kpnum" id="kpnum" value="<%= _kpvo.getKpnum() %>" >
<input type="hidden" name="kmnum" id="kmnum" value="<%= 1234 %>" >
<input type="button" id="cartBtn" value="장바구니" style="width:150px;">
<input type="button" id="stockBtn" value="재고확인" style="width:155px;">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="button" id="buyBtn" value="구매하기" style="width:310px;" >
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
8교시 (17:30-18:30)
상품 상세 페이지 만들기
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>index.jsp</h3>
<hr>
<a href="kosmoProductInsertForm.k">코스모 상품 입력</a><br>
<a href="kosmoProductSelectAll.k">코스모 상품 전체 조회</a><br>
</body>
</html>
Notes
- 스프링에서는 이벤트, 콘트롤러, 쿼리만 신경쓰면 된다.
728x90