gatakura
836
2021-08-02 13:10:42 작성 2021-08-02 13:10:55 수정됨
6
238

json Map으로 받아왔을 시 더 좋은방법에 대한 질문입니다.


   @PostMapping(path = "/reservations")
    public Object setReservations(@RequestBody Map param, HttpServletRequest request ) {
String id = param.get("id"); String pwd = param.get("password"); String email = param.get("email"); return reservationService.setInfo(id,pwd,email);
이런식으로 param 해서 reservationService.setInfo(id,pwd,email); 이런식으로 넣을때 몇개없을땐 괜찮은데 많아질떄 생각해서
다른 방법으로 넣고싶은데 예를들면 List<Vo> vo = ... ; 이런식으로 받는방법도 있을까요? 일단@RequestBody와 Map으로 받아올 생각입니다. !! 
0
  • 답변 6

  • configurer
    288
    2021-08-02 13:22:21

    reservationService.setInfo(param) 으로 넘기시면 되지 않나요?

  • configurer
    288
    2021-08-02 13:25:40

    만약 안되시면

    @RequestBody Map param 을 아래로 바꿔보세요

    @RequestBody ABCDto dto ( ABCDto는 객체 형태로 만드셔서 내부에 private id, pwd, email 을 선언해주셔야 합니다 )

  • 드코
    3k
    2021-08-02 16:19:54

    configurer 

    주로 저도 이렇게 넘겨서 사용합니다

  • gatakura
    836
    2021-08-02 22:43:04 작성 2021-08-02 22:45:43 수정됨
     public Object setReservations(@RequestBody Map param, HttpServletRequest request ) {
    return boardService.create(param);
    이런식으로 다 받아와지긴하는데 .. logger.info 결과 컨트롤까진 받아와지는데 
    public int create(Map param) throws Exception; //serviceimpl
    넘어가서 맵퍼에서 
    <insert id="create" parameterType="int">
    INSERT INTO
    PC_DATALIST(
    NO,
    CPU,
    MEM,
    SSD,
    HDD,
    TO_DATE)
    VALUES (#{no},#{cpu},#{mem},#{ssd},#{hdd},SYSDATE)
    </insert>
    이런식으로 만들면 java.lang.String cannot be cast to java.lang.Integer 

    변환을 안해서 이런 오류가 나네요.. 어떤식으로해야 할까요..
  • gatakura
    836
    2021-08-02 22:56:36 작성 2021-08-02 22:57:49 수정됨
    <insert id="create" parameterType="int">

    를 Vo 로 바꾸고 (@RequestBody Map param을 Vo vo 로 바꿔서 해도

    ### SQL: INSERT INTO             PC_DATALIST(             NO,             CPU,             MEM,             SSD,             HDD,             TO_DATE)             VALUES (?,?,?,?,?,SYSDATE) 맵퍼에서 안들어가기도하네요 .. 

    제 Vo 입니다..

    @Data
    public class PcDataVo {
    String no;
    String cpu;
    String mem;
    String ssd;
    //String ssd;
    String hdd;
    private Date toDate;
    }
  • gatakura
    836
    2021-08-02 23:22:31

    너무 마음이 급하게 하다보니 두서가 없는거같아서 다시 정리해서 글 올려봤습니다.!!ㅠㅜ

    https://okky.kr/article/1013599

  • 로그인을 하시면 답변을 등록할 수 있습니다.