본문 바로가기

안녕하세요!

프로그래밍 언어/JSP

JSP_22-11-21_관리자 페이지/상품 등록[1]

○ 관리자 페이지 추가

    - adminck = 1 : 관리자인 경우를 1로 설정

UPDATE member SET adminck = 1 where id = '';

    - 관리자인 경우, '관리자 페이지' 이동 리스트 추가

<c:if test="${member.adminCk == 1 }">
	<li><a href="/admin/main">관리자 페이지</a></li>
</c:if>

 

AdminController.java class 생성

    - 관리자 메인 페이지로 이동하는 url 메서드를 작성

@Controller
@RequestMapping("/admin")
public class AdminController {
 
    private static final Logger logger = LoggerFactory.getLogger(AdminController.class);
    
    /* 관리자 메인 페이지 이동 */
    @RequestMapping(value="main", method = RequestMethod.GET)
    public void adminMainGET() throws Exception{
        
        logger.info("관리자 페이지 이동");
        
    }
    
}

 

○ views/admin/main.jsp


ProductVO.java class 생성

    - 변수명 private로 지정

    - @Data 어노테이션 추가

private int 	product_id;			// 상품 아이디
private String 	p_name;				// 상품 이름
private String 	p_explanation;			// 상품 설명
private int 	p_price;			// 상품 가격
private int 	p_sell;					

private Date 	p_enroll;			// 상품 등록일

 

ProductMapper.java interface 생성

    - 상품 정보 관련 쿼리 메서드만 분리하여 관리

    - 해당 인터페이스에 상품 등록 쿼리를 실행하는 메서드 작성

// 상품 등록
public void productEnroll(ProductVO product)

 

ProductMapper.xml

    - namespace에 ProductMapper.java 경로 지정

    - ProductMapeer.java의 상품 등록 메서드 id로 지정

    - product 테이블에 변수 및 속성 insert문 작성

<?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="com.edu.product.ProductMapper">
  
      <insert id = "productEnroll">
      		insert into product(p_name, p_explanation, p_price) values(#{p__name}, #{p_explanation}, #{p_price})
      </insert>
      
  </mapper>

 

ProductService.java interface 생성

    - 작가 등록 메서드 등록

// 상품 등록
 public void productEnroll(ProductVO product) throws Exception;

 

ProductServiceImpl.java class 생성

    - ProductService 상속

    - @Service 어노테이션추가

    - @Autowired : ProductMapper.java 인터페이스 주입해주는 코드 작성

    - @override :  ProductService.java 오버 라이딩, ProductMapper의 상품 등록 메서드를 호출하는 코드 작성

@Service
public class ProductServiceImpl implements ProductService {

	@Autowired
	ProductMapper productMapper;
    
    @Override
    public void productEnroll(ProductVO product) throws Exception {
        
        productMapper.productEnroll(product);
        
    }

}

 

○ ProductController.java interface 생성

@Controller
@RequestMapping("/admin")
public class ProductController {

    @Autowired
    private ProductService productService;
    
    
    
    /* 상품 등록 */
    @RequestMapping(value="productEnroll.do", method = RequestMethod.POST)
    public String productEnrollPOST(ProductVO product, RedirectAttributes rttr) throws Exception{
 
    logger.info("productEnroll :" +  product);
        
    productService.productEnroll(product);      // 작가 등록 쿼리 수행
    
    rttr.addFlashAttribute("enroll_result", product.getp_name());
        
    }

}

 

○ View 구현

<div class="admin_content_main">
                    	<form action="/admin/productEnroll.do" method="post" id="enrollForm">
                    		<div class="form_section">
                    			<div class="form_section_title">
                    				<label>상품 이름</label>
                    			</div>
                    			<div class="form_section_content">
                    				<input name="p_name">
                    			</div>
                    		</div>
                    	
                    		<div class="form_section">
                    			<div class="form_section_title">
                    				<label>상품 소개</label>
                    			</div>
                    			<div class="form_section_content">
                    				<input name="p_explanation" type="text">
                    			</div>
                    		</div>
                   		</form>
                   			<div class="btn_section">
                   				<button id="cancelBtn" class="btn">취 소</button>
	                    		<button id="enrollBtn" class="btn enroll_btn">등 록</button>
	                    	</div> 
                    </div>

 

- 등록 : 상품 등록 기능 수행

- 취소 : 삼품 관리 페이지로 이동

<script>
 
/* 등록 버튼 */
$("#enrollBtn").click(function(){    
    $("#enrollForm").submit();
});
 
/* 취소 버튼 */
$("#cancelBtn").click(function(){
    location.href="/admin/authorManage"
});
 
</script>

 

- 서버에서 전송되는 데이터를 체크 후, 존재 할 시에 상품 등록 성공 메시지를 알리는 경고창을 띄우는 코드 추가

- 보안성 관련 해 <c:out> 태그 적용

<script>
$(document).ready(function(){
    
    let result = '<c:out value="${enroll_result}"/>';
    
    checkResult(result);
    
    function checkResult(result){
        
        if(result === ''){
            return;
        }
        
        alert("상품 '${enroll_result}'을/를 등록하였습니다.");
        
    }
 
});
</script>
728x90
반응형

'프로그래밍 언어 > JSP' 카테고리의 다른 글

JSP_22-11-22_상품 등록[2]  (0) 2022.11.24
JSP_22-11_24  (0) 2022.11.24
JSP_22-11-18  (0) 2022.11.18
JSP_22-11-17  (0) 2022.11.17

loading