JSP
JSP 상품등록 페이지 만들기
9400
2023. 1. 3. 11:01
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!-- 상품정보를 등록하는 페이지 만들기 -->
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/css/bootstrap.min.css" />
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
<title>상품 등록</title>
</head>
<body>
<jsp:include page="menu.jsp"></jsp:include>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">상품등록</h1>
</div>
</div>
<div class="container">
<!-- 폼페이지 시작 -->
<form name="newProduct" id="newProduct" action="processAddProduct.jsp"
class="form-horizontal" method="post">
<!-- 가로방향(행=로우=튜플=레코드) -->
<div class="form-group row">
<label class="col-sm-2">상품코드</label>
<div class="col-sm-3">
<input type="text" name="productId" class="form-control" required/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">상품명</label>
<div class="col-sm-3">
<input type="text" name="pname" class="form-control" required/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">가격</label>
<div class="col-sm-3">
<input type="number" name="unitPrice" class="form-control" required/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">상세정보</label>
<div>
<!-- 세로 : cols, 가로 : rows -->
<textarea class="form-control" cols="100" rows="2" id="description" name="description"></textarea>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">제조사</label>
<div class="col-sm-3">
<input type="text" name="manufacturer" class="form-control"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">분류</label>
<div class="col-sm-3">
<input type="text" name="category" class="form-control"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">재고 수</label>
<div class="col-sm-3">
<input type="number" name="unitsInStock" class="form-control"/>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">상태</label>
<div class="col-sm-5">
<input type="radio" id="new" name="condition" value="new" checked/>
<label for="new">신규제품</label>
<input type="radio" id="old" name="condition" value="old"/>
<label for="old">중고제품</label>
<input type="radio" id="Refurbished" name="condition" value="Refurbished"/>
<label for="Refurbished">신규제품</label>
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10">
<!-- <button type="submit" .. </button> -->
<input type="submit" class="btn btn-primary" value="등록"/>
<input type="reset" class="btn btn-danger" value="초기화"/>
</div>
</div>
</form>
<!-- 폼페이지 끝 -->
</div>
<script>
CKEDITOR.replace('description');
</script>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>
단 form을 보낼시 processAddProduct.jsp로 감
<form name="newProduct" id="newProduct" action="processAddProduct.jsp"
class="form-horizontal" method="post">
<%@page import="kr.or.ddit.vo.ProductVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page import="kr.or.ddit.dao.ProductRepository"%>
<% //스크립틀릿
request.setCharacterEncoding("UTF-8");
String productId= request.getParameter("productId"); //상품아이디(기본키 => NOT NULL, No Duplicate[중복이없음,유일])
String pname = request.getParameter("pname"); //상품명
String unitPrice = request.getParameter("unitPrice"); //상품가격
String description = request.getParameter("description"); //상품설명
String manufacturer = request.getParameter("manufacturer"); //제조사
String category = request.getParameter("category"); //분류(휴대폰/태블릿/노트북)
String unitsInStock= request.getParameter("unitsInStock"); //재고수
String condition = request.getParameter("condition"); //신상품 or 중고품 or 재생품
/* String quantity = request.getParameter("quantity"); //상품을 장바구니에 담은 개수 */
/* 1) unitPrice는 문자형 데이터 -> 숫자형 변환
double : 실수형(소수자리..) */
double price = 0d;
//만약 상품가격이 입력이 안되었다면 ...
if(unitPrice.isEmpty()){
price=0d;
}else{ //그게아니면 정수형으로 변경
price=Double.parseDouble(unitPrice);
/* price=Double.valueOf(unitPrice); */
}
// 2)unitsInStock(재고수)는 문자형 데이터 -> long(정수형)
long stock=0L;
if(unitsInStock.isEmpty()){
stock=0L;
}else{
stock = Long.valueOf(unitsInStock);
}
%>
<p>productId : <%=productId%> </p>
<p>pname : <%=pname %> </p>
<p>unitPrice : <%=price %> </p>
<p>description : <%=description %> </p>
<p>manufacturer: <%=manufacturer%> </p>
<p>category : <%=category %> </p>
<p>unitsInStock: <%= stock%> </p>
<p>condition : <%= condition%> </p>
<%
ProductRepository dao = ProductRepository.getInstance();
ProductVO productVO = new ProductVO();
productVO.setProductId(productId);
productVO.setPname(pname);
productVO.setUnitPrice(price); //DOUBLE형
productVO.setDescription(description);
productVO.setManufacturer(manufacturer);
productVO.setCategory(category);
productVO.setUnitsInStock(stock); //LONG형
//상품 이미지 처리 --> P1237.jpg -> images폴더에 넣어주면 됨.
productVO.setFilename(productId+".jpg");
dao.addProduct(productVO);
//response내장객체의 sendRedirect메소드를 사용하여 상품 목록 페이지로 이동
response.sendRedirect("products.jsp");
%>
<p>productVO : <%= productVO.toString()%></p>
제품 추가 완료 !