WHYGRAM / WHYGRAM_logs

0 stars 0 forks source link

`AJAX`, `@RestController`, `@RequestBody` (`UserController`소스도 있음) #38

Open HyeonJin-Jang opened 3 years ago

HyeonJin-Jang commented 3 years ago

get

var btnChkIdElem = frmElem.btnChkId; //중복ID체크 버튼
btnChkIdElem.addEventListener('click', function() {
    idChkAjax(uidElem.value);
});

function idChkAjax(uid) {
    console.log(uid);

    fetch('/user/idChk?uid=' + uid)
    .then(function(res) {
        return res.json();
    })
    .then(function(myJson) {
        console.log(myJson);
        switch(myJson.result) {
            case 0:
            chkUidResultElem.innerText = '이 아이디는 사용할 수 있습니다.';
            break;
            case 1:
            chkUidResultElem.innerText = '이 아이디는 사용할 수 없습니다.';
            break;
        }
    });
}


HyeonJin-Jang commented 3 years ago

UserController가 갑자기 사라지는 사태가 발생하여 따로 저장해둠

package com.koreait.whygram.controller;

import com.koreait.whygram.model.user.UserEntity;
import com.koreait.whygram.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired private UserService service;

    @PostMapping("/join")
    public String postJoin(UserEntity userEntity, @RequestParam String pwchk) {
        String path = service.insUsers(userEntity, pwchk);
        return "redirect:" + path;
    }

    @GetMapping("/auth")
    public String auth(UserEntity param) {
        String msg = service.auth(param);
        return "redirect:/whygram?msg=" + msg;
    }

    @PostMapping("/mypage")
    public String mypage(MultipartFile[] imgArr) {
        return "";
    }
}
HyeonJin-Jang commented 3 years ago
function regCmt() {
    var cmtVal = cmtFrmElem.cmt.value;
    var param = {
        iboard: cmtListElem.dataset.iboard,
        cmt: cmtVal
    };  
    regAjax(param);
}

//서버에게 등록해줘~~~
function regAjax(param) {
    const init = {
        method: 'POST',             
        body: JSON.stringify(param),
        headers:{
            'accept' : 'application/json',
            'content-type' : 'application/json;charset=UTF-8'
        }
    };

    fetch('cmt', init)
    .then(function(res) {
        return res.json();
    })
    .then(function(myJson) {
        console.log(myJson);

        switch(myJson.result) {
            case 0: //등록 실패
                alert('등록 실패!');
            break;
            case 1: //등록 성공
                cmtFrmElem.cmt.value = '';
                getListAjax();
            break;
        }
    });     
}

//서버에게 댓글 리스트 자료 달라고 요청하는 함수
function getListAjax() {
    var iboard = cmtListElem.dataset.iboard;

    fetch('cmt/' + iboard)
    .then(function(res) {
        return res.json();
    })
    .then(function(myJson) {
        console.log(myJson);

        makeCmtElemList(myJson);
    });
}

https://github.com/sbsteacher/2021Spring_1/blob/master/src/main/webapp/res/js/board/detail.js

HyeonJin-Jang commented 3 years ago
    @ResponseBody
    @RequestMapping(value="/cmt", method = RequestMethod.POST)
    public Map<String, Integer> cmtIns(@RequestBody BoardCmtEntity param) {
        System.out.println("param = " + param);
        int result = service.insBoardCmt(param);
        Map<String, Integer> data = new HashMap();
        data.put("result", result);
        return data;
    }

    @ResponseBody
    @RequestMapping("/cmt/{iboard}")
    public List<BoardCmtDomain> cmtSel(BoardCmtEntity param, @PathVariable int iboard) {
        param.setIboard(iboard);
        return service.selBoardCmtList(param);
    }

    @ResponseBody
    @RequestMapping(value="/cmt", method = RequestMethod.PUT)
    public Map<String, Integer> cmtUpd(@RequestBody BoardCmtEntity param) {
        int result = service.updBoardCmt(param);
        Map<String, Integer> data = new HashMap();
        data.put("result", result);
        return data;
    }

    @ResponseBody
    @RequestMapping(value="/cmt/{icmt}", method = RequestMethod.DELETE)
    public Map<String, Integer> cmtDel(BoardCmtEntity param, @PathVariable int icmt) {
        param.setIcmt(icmt);
        int result = service.delBoardCmt(param);
        Map<String, Integer> data = new HashMap();
        data.put("result", result);
        return data;
    }

https://github.com/sbsteacher/2021Spring_1/blob/master/src/main/java/com/koreait/spring/board/BoardController.java

HyeonJin-Jang commented 3 years ago
@RestController
@RequestMapping("/board")
public class BoardFavController {

    @Autowired
    private BoardFavService service;

    @Autowired
    private BoardService service2;

    @PostMapping("/fav")
    public Map<String, Integer> insFav(@RequestBody BoardFavEntity param) {
        Map<String, Integer> result = new HashMap();
        result.put("result", service.insFav(param));
        return result;
    }

    @GetMapping("/fav")
    public Map<String, Object> selFavBoardList(BoardDTO param) {
        Map<String, Object> result = new HashMap();
        param.setSelType(1);
        result.put("list", service2.selBoardList(param));
        result.put("maxPageVal", service2.selMaxPageVal(param));
        return result;
    }
    /*
    public List<BoardDomain> selFavBoardList(BoardDTO param) {
        param.setSelType(1);
        return service2.selBoardList(param);
    }
     */

    @GetMapping("/fav/{iboard}")
    public Map<String, Integer> selFav(BoardFavEntity param
            , @PathVariable int iboard) {
        param.setIboard(iboard);
        Map<String, Integer> result = new HashMap();
        result.put("result", service.selFav(param));
        return result;
    }

    @DeleteMapping("/fav")
    public Map<String, Integer> delFav(BoardFavEntity param) {
        Map<String, Integer> result = new HashMap();
        result.put("result", service.delFav(param));
        return result;
    }
}

https://github.com/sbsteacher/2021Spring_1/blob/master/src/main/java/com/koreait/spring/board/BoardFavController.java