ReplyController.java
페이지 정보
본문
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 String register(@RequestBody ReplyVO vo) {
log.info("댓글 등록..................");
service.addReply(vo);
return "success";
}
//@RequestMapping()을 보면 URI 내의 경로에 {bno}를 활용한다.
//{bno}는 메소드의 파라미터에서 @PathVariable("bno")로 활용된다.
//글 목록
@RequestMapping(value = "/all/{bno}", method = RequestMethod.GET)
public List<ReplyVO> list(@PathVariable("bno") Integer bno) {
return service.listReply(bno);
}
//글 수정
@RequestMapping(value = "/{rno}", method = { RequestMethod.PUT, RequestMethod.PATCH })
public String update(@PathVariable("rno") Integer rno, @RequestBody ReplyVO vo) {
vo.setRno(rno);
service.modifyReply(vo);
return "success";
}
//글 삭제
@RequestMapping(value = "/{rno}", method = RequestMethod.DELETE)
public String remove(@PathVariable("rno") Integer rno) {
service.removeReply(rno);
return "success";
}
// - /replies/게시물 번호/페이지 번호
//페이징 처리를 위해서는 PageMaker를 가져와야 한다.
//Ajax로 호출될 것이므로 Model 아닌 Map 타입의 객체를 생성 이용한다.
//페이징 처리
@RequestMapping(value = "/{bno}/{page}", method = RequestMethod.GET)
public Map<String, Object> listPage2(
@PathVariable("bno") Integer bno,
@PathVariable("page") Integer page) {
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);
return map;
}
}
- 이전글ReplyServiceImpl.java 24.07.31
- 다음글ReplyController.java ( 200 , 400 번대 에러날 경우 : ResponseEntity 처리 ) 24.07.31
댓글목록
등록된 댓글이 없습니다.