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>

제품 추가 완료 !