기록을 합시다.
[Spring] Spring Framework에서 Form 받아오기 본문
사전 지식
VO
@Controller
- @Controller 애노테이션은 Spring MVC에서 Controller 클래스에 대해 정의한다. 이 애노테이션이 붙은 클래스는 HTTP 요청을 처리하고, 처리한 결과를 응답해준다.
@GetMapping
- @GetMapping은 HTTP GET 요청을 처리하는 메서드를 정의할 때 사용한다. 메서드에 붙이게 되면, 해당 URL 경로의 GET 요청을 처리하게 된다.
@PostMapping
- @PostMapping은 HTTP POST 요청을 처리하는 메서드를 정의할 때 사용한다. 메서드에 붙이면, 해당 URL 경로의 POST 요청을 처리한다.
HTML 파일
function register(){
if($("#userid").val() == '') { alert("아이디를 입력하세요."); $("#userid").focus(); return false; }
if($("#username").val() == '') { alert("이름을 입력하세요."); $("#username").focus(); return false; }
const Pass = $("#userpasswd").val();
const Pass1 = $("#userpasswd1").val();
if(Pass == '') { alert("암호를 입력하세요."); $("#userpasswd").focus(); return false; }
if(Pass1 == '') { alert("암호를 입력하세요."); $("#userpasswd1").focus(); return false; }
if(Pass != Pass1)
{ alert("입력된 비밀번호를 확인하세요"); $("#userpasswd1").focus(); return false; }
var num = Pass.search(/[0-9]/g);
var eng = Pass.search(/[a-z]/ig);
var spe = Pass.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);
document.RegistryForm.action = '/board/signup';
document.RegistryForm.submit();
$('#RegistryForm').attr('action', '/user/signup').submit();
};
- 위에서는 Form을 submit 하는 register 함수이다. 위에서는 RegistryForm에 작성된 userid, username, userpasswd, userpasswd을 /board/signup로 POST 해주고 있다.
Contoller 파일
package com.SFTest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.SFTest.dto.User;
@Controller
public class BoardController {
@GetMapping("/user/signup")
public void getSignUp() throws Exception{
}
@PostMapping("/user/signup")
public void postSignUp(User user) throws Exception{
System.out.println("userid = " + user.getUserid());
System.out.println("username = " + user.getUsername());
System.out.println("gender = " + user.getGender());
System.out.println("hobby = " + user.getHobby());
System.out.println("job = " + user.getJob());
}
}
코드 설명
@GetMapping("/user/signup")
public void getSignUp() throws Exception{}
- @GetMapping을 통해 get요청을 받으면 user폴더의 signup.jsp로 mapping 해준다.
@PostMapping("/user/signup")
public void postSignUp(User user) throws Exception{
System.out.println("userid = " + user.getUserid());
System.out.println("username = " + user.getUsername());
System.out.println("gender = " + user.getGender());
System.out.println("hobby = " + user.getHobby());
System.out.println("job = " + user.getJob());
}
- @PostMapping을 통해 post요청을 받으면 user폴더의 signup.jsp로 mapping 해준다.
- Sprinv MVC에서는 HTTP 요청의 Body에 포함된 Form Data를 자동으로 VO 객체로 변환해주는 기능을 제공한다. ㄱ그리하여 User 타입의 user를 파라미터로 받아오고 있는데, 이는 VO인 User 타입의 형식대로 Form Data를 받아온 것과 같다.
- System.out.println문을 통해 Form Data가 잘 들어왔는지 확인한다.
VO 파일
package com.SFTest.dto;
import java.util.List;
public class User {
private String userid;
private String username;
private String gender;
private List<String> hobby;
private String job;
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public List<String> getHobby() {
return hobby;
}
public void setHobby(List<String> hobby) {
this.hobby = hobby;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
- HTML에서 받아온 Form 데이터 형식에 맞게 User 클래스를 작성하였다.
- 데이터들의 멤버변수를 만들어주었고, 나머지는 다 그에 대한 getter / setter 함수들이다.
결과
- Form Data가 아주 잘 도착했다.
'공부 > Java' 카테고리의 다른 글
[Spring] Foreign Key 오류 (0) | 2023.05.15 |
---|---|
[Spring] IntelliJ에서 Auto-Reloading 하기 (0) | 2023.05.13 |
[Spring] DAO, DTO, VO (0) | 2023.04.27 |
[Spring] 여러 File Upload 하고, 저장하기 (0) | 2023.04.27 |
[Spring] Windows11 스프링 프레임워크 기본 세팅하기 (0) | 2023.04.26 |
Comments