어노테이션 안 붙어도 데이터 받아옴
name과 변수 이름 맞춰야 함
package com.example.site1.domain.temp.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@NoArgsConstructor
@AllArgsConstructor
@Getter
<!-- setter로 값을 받아오기 때문에 @Setter 필수 -->
@Setter
public class ReqTempDTO {
private String name;
private Integer age;
}
<form action="/temp" method="get">
<input type="text" name="name">
<input type="text" name="age">
<!-- type="submit" : 자동 제출 -->
<!-- 기본 타입 : submit -->
<button type="submit">제출</button>
</form>
@GetMapping("/temp")
public String getTemp(ReqTempDTO reqTempDTO){
System.out.println(reqTempDTO.getName());
System.out.println(reqTempDTO.getAge());
return "temp";
}
<form action="/temp" method="post">
<input type="text" name="name">
<input type="text" name="age">
<button type="submit">제출</button>
</form>
@PostMapping("/temp")
public String postTemp(ReqTempDTO reqTempDTO){
System.out.println(reqTempDTO.getName());
System.out.println(reqTempDTO.getAge());
return "temp";
}
form에 enctype="multipart/form-data" 추가
MultipartFile : 파일 자료형
<form action="/file" method="post" enctype="multipart/form-data">
<!-- multiple : 여러개 입력 받기 -->
<input type="file" name="files" multiple>
<button>제출</button>
</form>
@PostMapping("/file")
public String file(List<MultipartFile> files){
for (MultipartFile multipartFile : files) {
System.out.println(multipartFile.getOriginalFilename());
System.out.println(multipartFile.getSize());
}
return "temp";
}
- ==은 객체의 주소값
- equals는 주소값 확인 후 다르면 객체의 내용 비교
기본형
int 등등
참조형
배열, 객체, String
Wrap Class(Integer 등)@EqualsAndHashCode(of = "idx")
: equals() 함수 사용 시 비교 기준을 "idx" 변수로 지정
@ToString - 참조 순환 시 무한 루프로 오류 발생
참조 순환이 일어나는 필드를 제외하여 순환 끊기.