블로그 컨텐츠 수정 VO 작성하기 개요 이제껏 우리는 값을 전달하는 방법으로 Map을 사용했었습니다. Map은 굉장히 유연해서 변경에 강하다는 장점이 있습니다만, 반면 안에 무슨 값이 있는지는 실행하기 전까지 아무도 모른다는 단점이 있습니다. 반면 VO(Value Object)는 값의 이름과 타입을 미리 정의해서 사용하는 방법입니다. 따라서 코드만 보고도 내용물을 파악할 수 있는 장점이 있지만 코드를 더 많이 써야 하므로 번거롭다는 단점이 있습니다. 추가로 VO는 자동완성이 된다는 최대 장점도 있지요. 프로젝트를 하다가 원리원칙을 중요하게 여기시는 AA분이나 PM분을 만나면 반드시 VO를 사용하라는 지침을 받을 수도 있습니다. 꼭 그렇지 않더라도 매개변수가 엄청나게 많은 입/출력의 경우 미리 정의를 하지..
블로그 컨텐츠 수정 뷰 작성하기 개요 블로그 컨텐츠 수정 뷰는 조회 + 입력 화면을 조합하면 됩니다. 복붙의 세계에 오신 것을 환영합니다. 기본적인 틀은 수정 화면에서 가지고 오고, 데이터를 가져오는 부분은 조회 화면에서 가져오겠습니다. 블로그 컨텐츠 수정 뷰 작성 /src/main/webapp/WEB-INF/views/blog/edit.jsp 글번호 : ${blogCont.BLG_CONT_SEQ} 컨텐츠 제목 : 본문 ${blogCont.CONT_BDY} 입력일 : create.jsp 파일을 복사해서 edit.jsp 파일을 생성합니다. 태그 라이브러리 fn과 fmt를 read.jsp에서 복사합니다. 글 번호 코드 라인을 read.jsp 에서 복사합니다. 컨텐츠 제목 입력 태그에 value 속성을 추가합..
httpMethodFilter 추가하기 개요 HTTP 데이터의 수정은 PUT 메소드를 사용합니다. 다만 웹브라우저는 GET과 POST 만 대부분 인식하므로, PUT 메소드는 처리를 할 수가 없죠. 그래서 많은 프로젝트에서는 HTTP 메소드와 무관하게 GET을 제외한 모든 경우에는 POST 를 사용하기도 하는데요. 스프링은 이런 경우를 대비해서 HTTP 메소드를 에뮬레이션하는 기능이 있습니다. 즉, 브라우저에서 POST 메소드로 서버를 호출해도, 서버에서는 PUT 요청으로 처리하는 겁니다. 자동으로 되는 건 아니고, web.config에 httpMethodFilter를 추가하고 HTML에서는 _method 속성을 서버에 전달함으로써 에뮬레이션합니다. web.config 에 httpMethodFilter 추..
블로그 컨텐츠 수정 컨트롤러 만들기 개요 블로그 컨텐츠 수정 컨트롤러 메소드를 추가해 봅시다. 블로그 컨텐츠 수정 화면에서 보여져야 할 데이터는 블로그 컨텐츠 상세 화면과 완전히 동일하므로, 매퍼부터 서비스까지의 일련의 과정은 재사용할 수 있습니다. 따라서 컨트롤러 코드만 작성합니다. 수정 컨트롤러 메소드 작성 /src/main/java/v2/mvc/spring/blog/controller/BlogController.java @GetMapping(value = "/edit/{blogContSeq}") public ModelAndView getEdit(@PathVariable("blogContSeq") int blogContSeq) { ModelAndView mav = new ModelAndView("/b..
블로그 컨텐츠 뷰 작성하기 개요 서버 사이드 코딩이 완성되었으면, 클라이언트에 응답할 뷰를 작성합니다. 컨트롤러에서 blog/read 경로를 반환했으므로, 뷰의 경로는 /src/main/webapp/WEB-INF/views/blog/read.jsp 입니다. 블로그 컨텐츠 뷰 작성 /src/main/webapp/WEB-INF/views/blog/read.jsp 글번호 : ${blogCont.BLG_CONT_SEQ} 제목 : ${blogCont.TITLE} ${fn:replace(blogCont.CONT_BDY, CRLF ,' ')} 입력일 : link with editor 가 켜져 있는지 확인합니다. 리소스 열기 기능으로 create.jsp 파일을 찾습니다. /src/main/webapp/WEB-INF/v..
매퍼 XML 형태 잡기 /src/main/resources/sqlmap/TB_BLG_CONT_SQL.xml TB_BLG_CONT_SQL.xml 파일을 리소스 열기로 엽니다. 위 코드를 입력합니다. 매퍼에 쿼리 입력하기 select BLG_CONT_SEQ, TITLE, TO_CHAR(CONT_BDY) as CONT_BDY, INSERT_DT from TB_BLG_CONT where BLG_CONT_SEQ = #{BLG_CONT_SEQ} sqldeveloper에 작성해 둔 조회 쿼리를 복사합니다. selectOne 쿼리 안의 아래에 붙여넣습니다. 조회 조건의 1을 #{BLG_CONT_SEQ} 로 변경합니다.