member-controller

2024. 4. 11. 16:46개발일지

package com.example.totalproject.Controller;

import com.example.totalproject.Constant.RoleType;
import com.example.totalproject.DTO.MemberDTO;
import com.example.totalproject.Service.MemberService;
import com.example.totalproject.Util.PaginationUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.Map;

@Controller
@RequiredArgsConstructor
public class MemberController {
    //주입
    private final MemberService memberService;
    //맵핑
    //조회
    @GetMapping("/member/list")
    public String listForm(@PageableDefault(page = 1)Pageable pageable,
                           Model model) {
        Page<MemberDTO> memberDTOS = memberService.memberList(pageable);
        Map<String, Integer> pageData = PaginationUtil.Pagination(memberDTOS);
        model.addAllAttributes(pageData);
        model.addAttribute("list", memberDTOS);
        return "member/list";
    }
    //삽입
    @GetMapping("/member/save")
    public String saveForm() {
        return "member/save";
    }

    @PostMapping("/member/save")
    public String saveProc(MemberDTO memberDTO) {
        memberDTO.setRoleType(RoleType.USER);

        memberService.memberSave(memberDTO);
        return "redirect:/member/list";
    }
    //수정
    @GetMapping("/member/modify")
    public String modifyForm(Integer id, Model model) {
        MemberDTO memberDTO=memberService.memberRead(id);
        model.addAttribute("data", memberDTO);
        return "member/modify";
    }
    @PostMapping("/member/modify")
    public String modifyProc(MemberDTO memberDTO) {
        memberService.memberModify(memberDTO);
        return "redirect:/member/list";
    }
    //삭제
    @GetMapping("/member/remove")
    public String removeProc(Integer id) {
        memberService.memberRemove(id);
        return "redirect:/member/list";
    }
    //개별
    
    @GetMapping("/member/read")
    public String readProc(Integer id, Model model) {
        MemberDTO memberDTO = memberService.memberRead(id);
        model.addAttribute("data", memberDTO);
        return "member/read";
    } 
}

'개발일지' 카테고리의 다른 글

member-service  (0) 2024.04.11
movie-controller  (0) 2024.04.11
board-view  (0) 2024.04.11
board-service  (0) 2024.04.11
board-controller  (0) 2024.04.11