๐ก๊ธฐ์กด์๋ form ํ๊ทธ์ action์ผ๋ก ์ฃผ์๋ฅผ ๊ฑธ์ด์ ์ ์กํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์๋๋ฐ ์ฌ๊ธฐ์์๋ ๊ธฐ์กด์ ๋ฐฉ์์ด ์๋, JSON์ ํ์ฉํด์ Ajax๋ก ํ์๊ฐ์ ์ ์์ฒญํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ๊ฒ์ด๋ค.
1. ์๋ฒ ์์ฒญ์ด ๋ค์ด์์ ๋ ๊ธฐ๋ณธ์ผ๋ก ์ค์บํ๋ ๊ณณ์ธ src/main/resources/static ์๋์ user.js ํ์ผ์ ์์ฑํด ์ค๋ค.

2. ํ์๊ฐ์ ๋ฒํผ์ด ๊ธฐ์กด์ submit ํ์ ์ด์๋๋ฐ ํ์ ์ ์ง์ฐ๊ณ id๊ฐ์ ๋ถ์ฌํด ์ค๋ค.
<html />
<button id="btn-save" class="btn btn-primary">ํ์๊ฐ์
์๋ฃ</button>
3. id๊ฐ์ ๊ฐ์ ธ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํด ์ค๋ค.

4. ํ ์คํธ์ฉ์ผ๋ก ์๋ฌด ๊ฐ์ ์ ๋ ฅํ์ง ์๊ณ ํ์๊ฐ์ ์๋ฃ ๋ฒํผ์ ๋๋ฌ๋ณด๋ฉด alert์ฐฝ์ด ์ ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

5. ์ด์ ajax ์ฝ๋๋ฅผ ์์ฑํด์ค ๊ฒ์ด๋ค.

๐กํ์๊ฐ์ ์ Ajax๋ฅผ ์ฌ์ฉํ๋ 2๊ฐ์ง ์ด์ ?
- 1. ์์ฒญ์ ๋ํ ์๋ต์ html์ด ์๋ Data(Json)๋ก ๋ฐ๊ธฐ ์ํ์ฌ
- 2. ๋น๋๊ธฐ ํต์ ์ ์ํ์ฌ
6. UserApiController ํด๋์ค ์์ฑ
<java />
@RestController
public class UserApiController {
@Autowired
private UserService userService;
@PostMapping("/api/user")
public ResponseDto<Integer> save(@RequestBody User user) {
System.out.println("UserApiControllre: save ํธ์ถ๋จ");
user.setRole(RoleType.USER);
int result = userService.ํ์๊ฐ์
(user);
return new ResponseDto<Integer>(HttpStatus.OK,result);
}
}
7. UserService ์ฝ๋ ์์ฑ
<java />
//์คํ๋ง์ด ์ปดํฌ๋ํธ ์ค์บ์ ํตํด Bean์ ๋ฑ๋ก์ ํด์ค. IoC๋ฅผ ํด์ค๋ค.
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Transactional
public int ํ์๊ฐ์
(User user) {
try {
userRepository.save(user);
return 1;
}catch (Exception e) {
e.printStackTrace();
System.out.println("UserService : ํ์๊ฐ์
() : "+e.getMessage());
}
return -1;
}
}
8. ํ์๊ฐ์ ์ ์งํํด ๋ณด๋ฉด ์ฝ์์ฐฝ์ ๋ฉ์์ง๊ฐ ์ ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

9. ajax ํต์ ์์ ์ ์กํ data๋ฅผ ๋จผ์ alert์ฐฝ์ ๋ด์์ ๋์๋ object๋ก ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.


10. ์ฃผ์์ ์ง์ฐ๊ณ ํ์๊ฐ์ ์ ์งํํ๋ฉด ์ฝ์ ๋ก๊ทธ์ Http ์ํ๊ฐ์ด OK๋ก ์ ๋จ๊ณ

11. DB์๋ ๊ฐ์ด ์ ๋ค์ด์จ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ํ์๊ฐ์ ์ ์ ๋ ฅํ ๋ฐ์ดํฐ

- ํ์๊ฐ์ ํ DB ํ ์ด๋ธ ์กฐํ

์ค์! : ์คํฌ๋ฆฝํธ ํ์ธ์ ์ฝ์์ฐฝ ์ค๋ฅ ํ์ธ ํ network ํ์ด์ง์์ ์ ๋๋ก ๋ก๋ฉ์ด ๋์๋์ง ํ์ธ
์ ๋๋ก ์๋๋ฉด ๋นจ๊ฐ์ ๋ธ ํ์ธ ์!
'Springboot > Springboot Blog Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Service๊ฐ ํ์ํ ์ด์ - ๋ฉํ ์ฝ๋ฉ ์ฐธ์กฐ- ์์ ์ค (0) | 2022.09.24 |
---|---|
Ajax๋ฅผ ์ฌ์ฉํ๋ ์ด์ - ๋ฉํ์ฝ๋ฉ ์ ํ๋ธ ์์ฝ (0) | 2022.09.24 |
๋ถํธ์คํธ๋ฉ ์ ์ฉํ์ฌ ๋ฉ์ธ ํ๋ฉด ๊ตฌํํ๊ธฐ (0) | 2022.09.24 |
Springboot ๋์์๋ฆฌ! (0) | 2022.09.24 |
Json ๋ฐ์ดํฐ ํต์ ํ๊ธฐ (0) | 2022.09.24 |