○ 관리자 페이지 추가
- 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>
'프로그래밍 언어 > 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 |