본문 바로가기

Programming/Framework

(27)
DAY 164. Spring MVC - 게시글 수정하기 01. update.jsp 준비 02. BoardController.java - URL 요청에 대해 받을 수 있게 GET 메소드에 대한 @GetMapping 메소드 작성 ▼완성코드 // ▼ 게시글 수정 @GetMapping("/update") public ModelAndView update( @SessionAttribute("loginMember") Member loginMember, ModelAndView model, @RequestParam("no") int no) { Board board = service.findBoardByNo(no); if(loginMember.getNo() == board.getWriterNo()) { // ▼ model : 컨트롤러에서 처리한 결과를 jsp에게 전달하는 객체..
DAY 163. Spring MVC 첨부파일 다운로드 스프링에서 제공하는 방식 ResponseEntity httpEntity 클래스는 http 메시지를 만들어서 사용자에게 만들어 줄 수 있다. 메시지는 크게 2가지로 나뉜다. 1)요청 메시지 2) 응답 메시지 그 중 응답과 관련된 메시지와 관련된 클래스가 ResponseEntity이다. cf. ResponseBody 사용시 - 리턴해주는 데이터나 객체들을 데이터로 알아서 변경해서 보내준다. - 단점은 응답 Header 설정이 어렵다. (하려면 HttpServletResponse 를 또 포함시켜야 한다.) - 스프링에서는 바디와 헤더 설정을 한꺼번에 할 수 있는 ResponseEntity를 제공해준다. - 컨트롤러에서 ResponseEntity가 리턴하는 값은 http 응답에 대한 정보를 반환한다. * Htt..
DAY 162. Spring MVC 게시글 상세조회 404 에러 : 요청을 처리할 서블릿 혹은 요청을 받았지만 포워딩할 해당하는 페이지(jsp)가 없어서 찾을 수 없을 때 01. BoardController.java - view.jsp 준비 - get 요청 처리할 수 있는 @GetMapping 핸들러 생성 - PK 값인 "no"로 해당 게시글을 조회해보자. PK 값은 URL에 쿼리스트링으로 날려주고 있다. 모델에 담아서 넘겨주면 된다. model 객체는 기본적으로 request 영역 스코프이기 때문에 view.jsp에서 EL 구문을 통해 바로 조회할 수 있다? - service를 통해서 no값 줄테니까 board 조회해줘, 해서 board 객체를 가져올 수 있도록 하자. 02. BoardService.java - 메소드 생성 - 직접 하는 것이 아니라 m..
DAY 161. Spring MVC 게시판 게시글 작성 00. 화면 만들기 - write.jsp 준비 404 : 서블릿, 핸들러, 페이지가 없는 상태 스프링에서 처리할 매핑 처리된 메소드(핸들러) 자체가 없는 것 405 : 요청을 처리하는 애는 있지만, 해당 POST나 GET을 요청을 처리할 수 있는 핸들러가 없는 것 01. BoardController.java - get 요청 처리할 수 있는 @GetMapping 만들기 - 지금은 로그인 하지 않아도 직접 URL에 /board/write 치면 글쓰기 화면으로 넘어가는 상태 - 따라서, Interceptor를 적용해야 함. 02. servlet-context.xml - /board/write 추가 - 이 요청에 대해서만 Interceptor를 적용할 것이다. - 로그인 안한 상태로 URL 입력하면 Interc..
DAY 160. Spring MVC 게시판 페이징 01. BoardController.java - 사용자로부터 넘어오는 값을 매개 값으로 받을 것이다. - @RequestParam 어노테이션이 붙어 있으면 필수로 넘어와야 하는 파라미터가 된다. (만약, 존재하지 않는 파라미터이면 Requried request parameter 'page' for method parameter type int is not present 오류가 발생 - 넘겨주는 값이 없어도 에러가 안나게 하는 것은 @RequestParam(required = false) - BUT! @RequestParam(required = false) 로 되어 있어도 int page는 스프링 내부적으로 문자열 형태로 들어오고, 내부적으로 정수형으로 형변환을 시켜준다. - 그런데 page는 존재 하지 ..
DAY 159. Spring 회원 탈퇴 01. MemberController.java - myPage.jsp에서 회원 탈퇴 btnDelete 버튼에 걸린 제이쿼리 함수가 get 요청으로 걸려있기 때문에 처리할 컨트롤러를 만든다. @GetMapping("/member/delete") public ModelAndView delete( ModelAndView model, @SessionAttribute(name="loginMember") Member loginMember ){ int result = 0; result = service.delete(loginMember.getNo()); if(result > 0){ model.addObject("msg", "회원 탈퇴가 정상적으로 처리되었습니다."); // ▼ /logout으로 보내는 이유는 데이터베..
DAY 158. Spring 회원 정보 수정 00. 화면 준비 myPage.jsp ▼ jsp에서는 항상 아래의 라이브러리가 있으면 유용하다. 01. MemberController.java - 일단 myPage로 이동하는 URL에 대한 Get 처리(해당하는 URL이 ("/member/myPage") 이고, 메소드가 get 일 때 처리할 메소드를 만든다.) - 디스패처 서블릿이 뷰 리졸버를 통해서 return하는 이름을 가진 view로 포워딩 시킨다. @GetMapping("/member/myPage") public String myPage() { return "/member/myPage"; } 01-1. 로그인한 사람한테만 마이페이지 정보수정이 가능하도록 처리 - 로그인하고 나서야, 정보수정 하는 페이지로 이동시킬 수 있도록, 버튼이나 활용해서 연결..
DAY 157. Spring ID 중복 검사 01. MemberController.java @PostMapping("/member/idCheck") @ResponseBody //@ResponseBody를 사용하지 않고 ResoponseEntity를 사용하는 방법 //public ResponseEntity idCheck(@RequestParam("userId") String userId){ //return new ResponseEntity(map, HttpStatus.OK); } public Object idCheck(@RequestParam("userId") String userId) { Map map = new HashMap(); log.info("{}", userId); map.put("duplicate", service.isDuplicateI..