하고자 하는 모양
VO
[ 상품 클래스 생성, 멤버 변수 선언 / 기본 생성자 작성 / 모든 멤버 변수의 Setter/Getter( ) 메소드 작성]
더보기
ProductVO.java
package kr.or.ddit.vo;
//자바빈 클래스
//자바빈규약 : 프로퍼티, 기본생성자, getter/setter메소드
public class ProductVO {
//멤버변수 (필드) = 프로퍼티
private String product_id;
private String pname;
private long unitPrice;
private String description;
private String manufacturer;
private String category;
private long unitsInStock;
private String condition;
//기본 생성자 (생략가능)
public ProductVO() {}
//생성자(상품아이디, 상품명, 상품가격)
public ProductVO(String product_id, String pname, long unitPrice) {
this.product_id = product_id;
this.pname = pname;
this.unitPrice = unitPrice;
}
//getter/setter메소드
public String getProduct_id() {
return product_id;
}
public void setProduct_id(String product_id) {
this.product_id = product_id;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public long getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(long unitPrice) {
this.unitPrice = unitPrice;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public long getUnitsInStock() {
return unitsInStock;
}
public void setUnitsInStock(long unitsInStock) {
this.unitsInStock = unitsInStock;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
@Override
public String toString() {
return "ProductVO [product_id=" + product_id + ", pname=" + pname + ", unitPrice=" + unitPrice
+ ", description=" + description + ", manufacturer=" + manufacturer + ", category=" + category
+ ", unitsInStock=" + unitsInStock + ", condition=" + condition + "]";
}
}
DAO
[ 멤버 변수와 기본 생성자 만들기 / 상품 목록으 가져오는 메소드 만들기 ]
더보기
ProductRepository.java
package kr.or.ddit.dao;
import java.util.ArrayList;
import kr.or.ddit.vo.ProductVO;
public class ProductRepository {
//정보를 한번에 보내기 위해 생성함
private ArrayList<ProductVO> listofProducts = new ArrayList<ProductVO>();
//싱글톤 객체
private static ProductRepository instance = new ProductRepository();
public static ProductRepository getInstance() {
return instance;
}
//기본생성자. 3개의 상품 정보를 설정
private ProductRepository() {
//최신 아이폰
ProductVO phone = new ProductVO("P1234", "iPhone 15s", 1250000);
phone.setDescription("4.7-inch, 1334x750 Renina HD display");
phone.setCategory("smart Phone");
phone.setManufacturer("Apple");
phone.setUnitsInStock(1000);
phone.setCondition("New");
//최신 노트북
ProductVO notbbook = new ProductVO("P1235", "Mac Book", 2000000);
notbbook.setDescription("13.3-inch, ISP LED display, 5rd Generation Intel");
notbbook.setCategory("NoteBook");
notbbook.setManufacturer("LG");
notbbook.setUnitsInStock(1000);
notbbook.setCondition("Old");
//최신 태블릿
ProductVO tablet = new ProductVO("P1236", "갤럭시 탭 S9 Ultra", 1700000);
tablet.setDescription("212.8*125.6*6.6mm, Super AMOLED display");
tablet.setCategory("Tablet");
tablet.setManufacturer("Samsung");
tablet.setUnitsInStock(1000);
tablet.setCondition("Refurbished");
listofProducts.add(phone);
listofProducts.add(notbbook);
listofProducts.add(tablet);
}
//ProductVO 객체 타입의 변수 listofProducts에 저장된 모든 상품 목록을 가져옴
public ArrayList<ProductVO> getAllProducts(){
return listofProducts;
}
}
JSP
[ 상품 목록 출력 웹 페이지 만들기 ]
더보기
products.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="kr.or.ddit.dao.ProductRepository"%>
<%@ page import="kr.or.ddit.vo.ProductVO"%>
<%@ page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/css/bootstrap.min.css">
<title>상품목록</title>
</head>
<body>
<%//스크립틀릿
//클래스 객체 클래스 메소드
ProductRepository prodcutDAO = ProductRepository.getInstance();//호출 => 클래스의 메소드를 호출해서 객체를 가져오기
// 객체 타입 변수 객체 메소드
ArrayList<ProductVO> listofProducts = prodcutDAO.getAllProducts();//호출 => 객체를 준비하고 객체로 부터 메소드를호출해서 변수레 대입
//out.print("listofProducts : " + listofProducts );
%>
<!--자바에 있는걸 JSP로 가져오기 -->
<!-- JSPL 변수 값 변수 -->
<c:set var="listofProducts" value="<%=listofProducts%>" />
<%-- <p>${listofProducts}</p> --%>
<!--디렉티브 태그 속성 속성의 값 -->
<%@include file="menu.jsp" %>
<!-- 상품 목록시작 -->
<div class="jumbotron">
<div class="container">
<h1 class="display-3">상품 목록</h1>
</div>
</div>
<div clas="container">
<div class="row" align="center">
<!-- 상품 반복부분 시작
listofProducts : ArrayList<ProductVO> listofProducts
-->
<!-- 객체 타입의 변수 listofProducts에 저장된 상품 목록 개수만큼 실행하는 JSTL 반복문 -->
<c:forEach var="productVO" items="${listofProducts}" varStatus="stat" >
<div class="col-md-4">
<!-- EL 표현문 변수를가져와서 출력하는 부분 -->
<h3>${productVO.pname}</h3>
<p>${productVO.description}</p>
<p>${productVO.unitPrice} </p>
<P>
<a href="/product.jsp?productId=${productVO.productId}"
class="btn btn-secondary">상세정보 »</a>
</P>
</div>
</c:forEach>
<!-- 상품 반복부분 끝 -->
</div>
<hr>
</div>
<!-- 상품 목록 끝 -->
<%@include file="footer.jsp" %>
</body>
</html>
'JSP 웹 프로그래밍 > 쇼핑몰 페이지 만들기' 카테고리의 다른 글
[웹 쇼핑몰] 상품 등록 데이터의 유효성 검사하기 (0) | 2024.07.09 |
---|---|
[웹 쇼핑몰] 상품 이미지 등록하기 (0) | 2024.07.08 |
[웹 쇼핑몰] 상품 등록 페이지 (0) | 2024.07.03 |
[웹 쇼핑몰] 상품 상세 페이지 가져오기 (0) | 2024.07.02 |
[웹 쇼핑몰]웹 쇼핑몰 시작 페이지 만들기 / 한글 출력 및 페이지 모듈화 하기 (0) | 2024.06.26 |