프로그래밍/React

[React / Spring] 리액트에서 스프링으로 데이터 전송

daykim 2022. 2. 12. 22:27

아래 링크의 회원가입 데이터 전달 기준으로 설명

Vo, DAO, Service는 다 작성되었다고 가정

 

[회원가입]

1. 만들기 Email address We'll never share your email with anyone else. Password Check Password Submit 참고 https://react-bootstrap.github.io/forms/overview/ 2. state 추가 input에 작성된 값을 받기..

wldwlddl59.tistory.com

React

1. 아래 명령어 입력해 설치

npm install axios --save
npm install http-proxy-middleware --save

2. import axios from 'axios' 추가

3. 값 넘길 위치에 아래 코드 추가

axios.post("/signUp", {
			userId: this.state.studentId,
			userName: this.state.studentName,
			password: this.state.password
			})
			// then -> post 후 과정
			.then(function(response){ // response -> 스프링에서 받아온 데이터
				console.log(response.date); //-> 데이터를 사용하기 위해선 뒤에 .data 붙여야함
			})
			.catch(function (error){
				alert("회원가입 실패");
			});
*** 주의!! ***

### The error may exist in file [C:\Users...]
### The error may involve defaultParameterMap
### The error occurred while setting parameters

위와 같은 에러가 발생하고 넘어온 데이터 값이 다 null인 경우가 있다.
이 때 VO에 쓰여진 변수들 이름과 위의 코드에서 넘기는 데이터의 이름이 같아야한다.

Null 에러 확인하기

/src/main/resource/mybatis-config.xml 파일의 <Configuration> 태그 내부에 아래 코드 작성

	<settings>
		<setting name="jdbcTypeForNull" value="NULL"/>
	</settings>

 

Controller In Spring

package kr.co.controller;

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import kr.co.service.signUpService;
import kr.co.vo.signUpVO;

@Controller
@RequestMapping("")
public class signUpController {
	
	private static final Logger Logger = LoggerFactory.getLogger(signUpController.class);
	
	@Inject
	signUpService service;
	
	// 회원가입 데이터 post
	@CrossOrigin
	@RequestMapping(value="/signUp", method = RequestMethod.POST)
	public void postRegister(@RequestBody signUpVO vo) throws Exception{
		Logger.info("post register");
		
		System.out.println("id : " + vo.getUserId());
		System.out.println("pw : " + vo.getPassword());
		System.out.println("name : " + vo.getName());
		
		service.register(vo);
	}
}

 

확인

1. 회원가입 창에서 데이터 입력 후 회원가입 버튼 클릭

2. Spring console 창에서 데이터 전달 제대로 됐는지 확인

 

참고자료

'프로그래밍 > React' 카테고리의 다른 글

[React] 로그인/로그아웃 유지하기 ( sessionStorage, localStorage)  (0) 2022.03.02
[React] 회원가입  (0) 2022.02.12
React-Bootstrap  (0) 2022.02.12
[환경구성]  (0) 2022.02.12