[Spring][Groovy] 간단한 메모장 구현하기 5 (MemoController 생성)

PersesTitan·2022년 6월 20일
0

Spring

목록 보기
19/48

다음으로 컨트롤러를 구현하였습니다.

/memos : 메모 리스트 보여주는 곳
/memo : 새로운 메모 생성하는 곳
/memo/{id} : 특정 메모 상세 보기
/memo/{id}/edit : 메모 편집 하는 곳
/memo/{id}/remove : 메모 삭제하는 곳

그루비 부분은 끝났습니다. html, yml등은 '간단한 메모장 구현하기'에서 코드가 중복 되어서 생략하였습니다.

@Controller
class MemoController {

    @Autowired
    private MemoService memoService

    @GetMapping("/memos")
    String memoList(Model model, HttpServletRequest httpServletRequest) {
        String search = httpServletRequest.getParameter "search"
        List<Memo> memos = memoService.findSearch search
        model.addAttribute "searchParam", !(search == null || search.isBlank())
        model.addAttribute "search", search
        model.addAttribute "memos", memos
        return "/memo_list"
    }

    @GetMapping("/memo")
    String createFrom() {
        return "/new_memo"
    }

    @PostMapping("/memo")
    String createMemo(Memo memo, RedirectAttributes redirectAttributes) {
        Long id = memoService.save memo
        redirectAttributes.addAttribute "id", id
        redirectAttributes.addAttribute "create", true
        return "redirect:/memo/{id}"
    }

    @GetMapping("/memo/{id}")
    String memo(@PathVariable Long id, Model model) {
        Memo memo = memoService.findOne id
        model.addAttribute "id", id
        model.addAttribute "memo", memo
        return "item/memo"
    }

    @GetMapping("/memo/{id}/edit")
    String editFrom(@PathVariable Long id, Model model) {
        Memo memo = memoService.findOne id
        model.addAttribute "id", id
        model.addAttribute "memo", memo
        return "edit_memo"
    }

    @PostMapping("/memo/{id}/edit")
    String edit(@PathVariable Long id, MemoDTO memoDTO) {
        memoService.update id, memoDTO.title, memoDTO.content
        return "redirect:/memo/{id}"
    }

    @PostMapping("/memo/{id}/remove")
    String remove(@PathVariable Long id) {
        memoService.remove id
        return "redirect:/memos"
    }
}

Groovy 버전 코드
Java 버전 코드
Kotlin 버전 코드

profile
안녕하세요 페르세스 티탄입니다! 부족한 부분이 많이 있겠지만 잘부탁드립니다.

0개의 댓글