ReplyController.java ( 200 , 400 번대 에러날 경우 : ResponseEntity 처리 ) > SPRING1

본문 바로가기
사이트 내 전체검색

SPRING1

ReplyController.java ( 200 , 400 번대 에러날 경우 : ResponseEntity 처리 )

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 121회 작성일 24-07-31 16:12

본문

package com.pkt.controller;


import java.util.HashMap;

import java.util.List;

import java.util.Map;


import org.springframework.http.HttpStatus;

import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;


import com.pkt.model.Criteria;

import com.pkt.model.PageMaker;

import com.pkt.model.ReplyVO;

import com.pkt.service.ReplyService;


import lombok.AllArgsConstructor;

import lombok.extern.log4j.Log4j;


@RestController

@Log4j

@RequestMapping("/replies/")

@AllArgsConstructor

public class ReplyController {


private ReplyService service;


//리턴 타입 ResponseEntity<String> entity 설계

//새로운 댓글을 등록 실패시 BAD_REQUEST(400)를 결과로 전송된다.

//JSON으로 전송된 데이터를 ReplyVO타입의 객체(vo)로 변환해주는 역할을 @RequestBody가 한다.

//글 등록

@RequestMapping(value = "", method = RequestMethod.POST)

public ResponseEntity<String> register(@RequestBody ReplyVO vo) {

log.info("reply insert...................");


ResponseEntity<String> entity = null;


try {

service.addReply(vo);

entity = new ResponseEntity<String>("success", HttpStatus.OK);

} catch (Exception e) {

e.printStackTrace();

entity = new ResponseEntity<String>(e.getMessage(), HttpStatus.BAD_REQUEST); //400에러

}


return entity;

}


//@RequestMapping()을 보면 URI 내의 경로에 {bno}를 활용한다.

//{bno}는 메소드의 파라미터에서 @PathVariable("bno")로 활용된다.

//메소드의 처리가 성공하는 경우 - HttpStatus.OK 헤더를 전송하고, 데이터를 같이 전송처리한다.

//글 목록

@RequestMapping(value = "/all/{bno}", method = RequestMethod.GET)

public ResponseEntity<List<ReplyVO>> list(@PathVariable("bno") Integer bno) {

// @PathVariable - URI 경로에서 원하는 데이터를 추출하는 용도로 사용

ResponseEntity<List<ReplyVO>> entity = null;


try {

entity = new ResponseEntity<>(service.listReply(bno), HttpStatus.OK);

} catch (Exception e) {

e.printStackTrace();

entity = new ResponseEntity<>(HttpStatus.BAD_REQUEST);

}


return entity;

}


//글 수정

@RequestMapping(value = "/{rno}", method = { RequestMethod.PUT, RequestMethod.PATCH })

public ResponseEntity<String> update(@PathVariable("rno") Integer rno, @RequestBody ReplyVO vo) {


ResponseEntity<String> entity = null;


try {

vo.setRno(rno);

service.modifyReply(vo);


entity = new ResponseEntity<String>("success", HttpStatus.OK);

} catch (Exception e) {

e.printStackTrace();

entity = new ResponseEntity<String>(e.getMessage(), HttpStatus.BAD_REQUEST);

}


return entity;

}


//글 삭제

@RequestMapping(value = "/{rno}", method = RequestMethod.DELETE)

public ResponseEntity<String> remove(@PathVariable("rno") Integer rno) {


ResponseEntity<String> entity = null;


try {

service.removeReply(rno);

entity = new ResponseEntity<String>("success", HttpStatus.OK);

} catch (Exception e) {

e.printStackTrace();

entity = new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);

}


return entity;

}


// - /replies/게시물 번호/페이지 번호

//페이징 처리를 위해서는 PageMaker를 가져와야 한다.

//Ajax로 호출될 것이므로 Model 아닌 Map 타입의 객체를 생성 이용한다.

//페이징 처리

@RequestMapping(value = "/{bno}/{page}", method = RequestMethod.GET)

public ResponseEntity<Map<String, Object>> listPage(

@PathVariable("bno") Integer bno,

@PathVariable("page") Integer page) {


ResponseEntity<Map<String, Object>> entity = null;     


try {

Criteria cri = new Criteria();

cri.setPage(page);


PageMaker pageMaker = new PageMaker();

pageMaker.setCri(cri);


int replyCount = service.count(bno);

pageMaker.setTotalCount(replyCount);


List<ReplyVO> list = service.listReplyPage(bno, cri); 


Map<String, Object> map = new HashMap<String, Object>();


map.put("list", list);

map.put("pageMaker", pageMaker);


entity = new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);


} catch (Exception e) {

e.printStackTrace();

entity = new ResponseEntity<Map<String, Object>>(HttpStatus.BAD_REQUEST);

}


return entity;

}

}

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
261
어제
101
최대
10,760
전체
270,931
Copyright © dancePKT . All rights reserved.