커맨드 생성하기
안녕하세요.
고코더 입니다.
오늘은 서비스 객체인 command를 만들어보겠습니다.
커맨드 객체는 컨트롤러와 데이터베이스를 연결해주는 역할을 합니다.
기본적으로 커맨드 객체는 기본 인터페이스를 통해 작동합니다.
오늘 할 작업 할 내용을 구조도로 그려보았습니다.
커맨드는 인터페이스를 만들어서 이를 사용해
contet(상세), delete(삭제), list(목록),modify(수정)을 만들어보겠습니다.
● 1. 커맨드(command) 인터페이스 생성
마우스 오른쪽 버튼을 눌러서 new -> interface를 생성 합니다.
인터페이스 이름은 "Command"로 생성합니다.
모든 커맨드에 기본 인터페이스로 참조될 것입니다.
그리고 안에 내용을 아래처럼 채워넣습니다.
이 커맨드는 각 서비스 커맨드에 인터페이스로 사용 됩니다.
import org.springframework.ui.Model;
public interface Command {
public void execute(Model model);
}
7번 라인
- 공통 실행을 위한 model을 선언합니다.
● 2. ContentCommand - 상세보기 커맨드 생성
이번에는 게시판에서 상세보기 게시판 뷰에 해당하는 커맨드를 만들어 보겠습니다.
해당 커맨드 패키지에서
new -> class를 생성 합니다.
그리고 interfaces에서 add를 클릭 합니다.
Name에는 ContentCommand
그리고 command를 검색해서 아까 만들어놓은
인터페이스를 참조하도록 설정 합니다.
그리고 해당 command 객체에는 아래처럼 내용을 담습니다.
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.ui.Model;
public class ContentCommand implements Command {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
Map<String, Object> map = model.asMap();
HttpServletRequest request = (HttpServletRequest) map.get("request");
String Id = request.getParameter("Id");
}
}
7번라인
- 인터페이스 Command를 Implements를 합니다. 참조합니다.
12번 라인
- Model에 담아온 값을 map 타입에 담습니다.
- requetst 값을 사용하기 위해 선언합니다.
- 그리고 컨텐츠 상세보기를 위해서 Id 값을 가져옵니다.
● 3. DeleteCommand
삭제를 담당할 커맨드 객체를 생성합니다. 생성 과정은 동일하며 코드도 같습니다.
id 값을 받아 삭제를 요청할 것입니다.
● 4. ListCommand
게시판 목록을 노출할 리스트 커맨드를 생성 합니다.
dao객체가 아직 없기에 빈 커맨드 상태로 둡니다.
package net.gocoder.mvcboard.command;
import org.springframework.ui.Model;
public class ListCommand implements Command {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
}
}
● 5. WriteCommand
글쓰기 커맨드를 생성 합니다.
내용은 아래처럼 채워 넣습니다. 작성자,제목,내용을 받아 입력할 것입니다.
package net.gocoder.mvcboard.command;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.ui.Model;
public class WriteCommand implements Command {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
Map<String, Object> map = model.asMap();
HttpServletRequest request = (HttpServletRequest) map.get("request");
String Name = request.getParameter("Name");
String Title = request.getParameter("Title");
String Content = request.getParameter("Content");
}
}
15~17번 라인
- 글쓰기 내용을 가져옵니다.
● 6. ModifyCommand
수정 커맨드를 생성 합니다. 동일한 과정입니다.
수정 커맨드는 글쓰기 커맨드에 id값을 하나 더 받아 옵니다.
package net.gocoder.mvcboard.command;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.ui.Model;
public class ModifyCommand implements Command {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
Map<String, Object> map = model.asMap();
HttpServletRequest request = (HttpServletRequest) map.get("request");
String Id = request.getParameter("Id");
String Name = request.getParameter("Name");
String Title = request.getParameter("Title");
String Content = request.getParameter("Content");
}
}
15번 라인
- id 값은 조건절에 사용됩니다.
16~18번 라인
- 수정될 정보를 받아 처리 합니다.
● 7. Command 조직
해당 커맨드가 생성된 모습입니다. 게시판에 필요한 기능을 우선 만들었습니다.
나중에 커맨드는 dao를 추가하는등에 수정을 이루어질 것입니다.
마무리
각 객체에 대한 이해도를 높히기 위해 커맨드를 일괄 생성하였습니다.
'IT_Developers > JAVA' 카테고리의 다른 글
JSP - "the operation is not applicable to the current selection select a field which is not" / 세터 게터 생성 안될때 (1) | 2019.08.16 |
---|---|
Spring 게시판 만들기 - 컨트롤러(Controller) 개발 (1) | 2019.08.16 |
spring 게시판 만들기 - 패키지(Package) 생성, 프로젝트 구조도, 프로젝트 생성 (0) | 2019.08.15 |
Spring - 데이터 커맨드 객체 사용하기 (0) | 2019.08.14 |
JAVA - Setters , Getters 쓰는 이유 / 생성하기 (0) | 2019.08.14 |
댓글