일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링 HikariCP
- 쇼핑몰 프로젝트
- 스프링 메일 전송
- 파일 업로드
- 쇼핑몰 포트폴리오
- spring 프로젝트
- 스프링 쇼핑몰 프로젝트
- 스프링 프로젝트 설정
- 회원가입 기능
- 삭제 구현
- oracle 설치방법
- 스프링 프로젝트 기본 설정
- 스프링 프로젝트
- 스프링 업로드
- 스프링 이미지
- ResponseEntity
- 스프링 게시판
- 스프링 쇼핑몰
- 스프링 포트폴리오
- 스프링 게시판 구현
- 이미지 출력
- 정규표현식
- Bcrypt
- BCrypt 적용
- arraylist
- 로그인 기능
- 인증번호 전송
- 로그아웃 기능 구현
- spring 쇼핑몰
- 스프링 파일 삭제
- Today
- Total
Kim VamPa
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 작가 선택(팝업창) 구현 - 1 본문
프로젝트 Github : https://github.com/sjinjin7/Blog_Project
프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188
목표
작가 선택 팝업창 구현
authorId <input> 태그에 데이터를 넣기 위해 '작가'를 선택할 수 있도록 '팝업 창'을 띄우고, 원하는 '작가'를 선택을 하게 되면 팝업창은 닫히고 <input> 태그에 해당 작가의 id값이 입력되도록 하는 것이 목표입니다.
이번포스팅에선 팝업창을 띄우기 위한 버튼을 추가하고, 해당 버튼을 눌렀을 때 팝업창이 뜨도록 하는 것이 목표입니다.
순서
1. 작가 선택 버튼 추가 및 css 설정
2. 버튼 작동 구현
3. 테스트
1. 작가 선택 버튼 추가 및 css 설정
기존의 작가 입력(authorId) <input>태그 옆에 버튼을 추가할 것입니다. 해당 버튼을 누르게 되면 DB에 등록되어 있는 작가를 선택할 수 있는 팝업창이 뜨도록 구현할 것입니다.
먼저 기존의 작가 <input>태그를 아래의 코드로 수정 및 추가합니다.
<input id="authorName_input" readonly="readonly">
<input id="authorId_input" name="authorId" type="hidden">
<button class="authorId_btn">작가 선택</button>
첫 번째 <input> 태그의 경우 사용자에게 보일 부분입니다. 작가의 이름이 출력되도록 할 것입니다. 두 번째 <input> 태그는 '상품 등록'에 필요로 한 authorId 데이터를 저장합니다. 해당 태그는 보이지 않도록 type속성 값을 'hidden'을 부여하였습니다. <button>은 작가 선택을 할 수 팝업창을 띄우기 위해 추가하였습니다.
추가한 태그들의 csss 설정을 추가하였습니다. goodsEnroll.css에 아래의 코드를 추가합니다.
.authorId_btn { /* 작가 선택 css 설정 */
margin-left: 20px;
width: 14%;
height: 38px;
font-weight: 600;
background-color: #dfe8f5;
font-size: 15px;
cursor:pointer;
}
#authorName_input {
width: 80%;
text-align: center;
}
2. 버튼 작동 구현
아래 링크는 팝업창을 띄우는 방법이 명세도니 MDN 홈페이지입니다.
developer.mozilla.org/ko/docs/Web/API/Window/open#window_features
팝업창은 아래의 코드를 통해 동작합니다.
var window = window.open(url, windowName, [windowFeatures]);
첫 번째 파라미터는 팝업창의 url 주소입니다. 두 번째 파라미터는 팝업창의 이름입니다. 마지막 파라미터는 팝업창에 대한 설정입니다.
어떠한 설정을 할 수 있는지는 위의 MDN 홈페이지에 들어가면 볼 수 있습니다. 설정을 해준다고 해서 무조건 적용이 되는 것은 아닙니다. 각 설정에 따라 적용이 가능한 브라우저가 정해져 있습니다. 따라서 설정을 원할 시엔 위의 문서에 적용 가능 유무부터 확인해야 합니다. 저는 팝업창의 크기, 위치, 스크롤바 기능에 대한 설정만 할 것입니다.
먼저 <script> 태그 아래에 버튼이 클릭되었을 때 동작하는 메서드 추가와 해당 구현부에 버튼의 동작을 멈추는 코드를 추가해줍니다. (해당 버튼이 <form> 태그 내부에 추가되어있기 때문에 기능을 막지 않으면 <form>이 전송됩니다.)
/* 작가 선택 버튼 */
$('.authorId_btn').on("click",function(e){
e.preventDefault();
});
팝업창 동작을 실행하는 코드를 추가합니다.
let popUrl = "/admin/authorPop";
let popOption = "width = 650px, height=550px, top=300px, left=300px, scrollbars=yes";
window.open(popUrl,"작가 찾기",popOption);
위의 코드 작성을 마치고 '작가 선택' 버튼을 클릭하면 에러 창이 뜹니다. 아직 url 매핑 메서드와 팝업창 jsp를 추가해주지 않았기 때문입니다. 일단 팝업창이 뜨도록 하는 것이 목표이기 때문에 다른 추가적인 기능 코드 없이 단순한 url 매핑 메서드와 jsp파일을 추가해주겠습니다.
AdminController.java 에 아래의 url 매핑 메서드를 추가해줍니다.
/* 작가 검색 팝업창 */
@GetMapping("/authorPop")
public void authorPopGET() throws Exception{
logger.info("authorPopGET.......");
}
views/admin 폴더 경로에 authorPop.jsp 파일을 추가해줍니다. 그리고 authorPop.jsp파일에 해당 페이지가 팝업 페이지임을 표시하도록 문구를 추가하였습니다.
3. 테스트
'작가 선택' 버튼을 눌러서 팝업창이 뜨는지 테스트합니다.
REFERENCE
DATE
- 2020.03.26
'스프링 프레임워크 > 쇼핑몰 프로젝트' 카테고리의 다른 글
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 카테고리 리스트 구현 - 1 (0) | 2021.03.30 |
---|---|
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 작가 선택(팝업창) 구현 - 2 (4) | 2021.03.29 |
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 달력 위젯 적용 (10) | 2021.03.25 |
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 위지윅(wysiwyg) 에디터 적용 (25) | 2021.03.24 |
[Spring][쇼핑몰 프로젝트][18] 상품 등록 - 등록 기본 구현 (4) | 2021.03.23 |