[컨트롤러 메서드의 파라미터 타입]2021.01.18
< 클래스 패스 >
1. 프로젝트 외부
-장점:가벼워짐
-단점:이동이 어렵다(다시 또 수정하려면 바꿔줘야됌)
2. 프로젝트 내부 (WEB-INF/lib/*.jar)
-장점: 이동이 쉽다
-단점: 무겁다(용량이 크다)
-> 요 두개를 해결하는게 maven
클래스패스 따로 해줄필요없이 알아서 클래스패스 걸어줌
<java-version>1.8</java-version> <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
->버전 1.8/5.0.7 로 바꿔야함
->경로설정
servlet-context.xml -> 컨트롤러 담당
server->client 로 데이터 보내는 방법
- html(css/js)
- text
- json
- xml
컨트롤러 메서드의 파라미터 타입
추가 설명보충
@RequestBody
- Http 요청의 body부분을 JSON으로 변환시켜주는 역할
- POST방식으로 넘어온 데이터를 객체로 바인딩
- POST방식으로만 사용해야함
@RequestParam
- 요청 파라미터를 1:1로 받기 위해 사용
- 반드시 파라미터가 전송되어야 한다(안되면 400error)
- defualtValue로 값을 설정하든지 required를 false로 바꿔서 값이 없어도 되든지 해줘야함
(@RequestParam(required = false) 와 같이 required 속성을 추가하면 해당 필드가 쿼리스트링에 존재하지 않아도 예외가 발생하지 않음.)
@ModelAttribute
- 요청된 여러개의 파라미터들을 1:1로 객체에 바인딩 해서 받을 수 있음
public class IndexController {
@RequestMapping("/sample/*")
public String hello(@RequestParam("name") String name,
// required 조건이 없으면 기본값은 true, 즉 필수 파라미터이다. 파라미터 pageNo가
존재하지 않으면 Exception 발생.
@RequestParam(value="pageNo", required=false) String pageNo){
// 파라미터 pageNo가 존재하지 않으면 String pageNo는 null.
...
}
@ResponseEntity
- HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스
- ResponseEntity 는 status field를 가지기 때문에 상태코드는 필수적으로 리턴해줘야 한다.
public ResponseEntity<String> m13() {
String msg = "{\"name\":\"엄지공주\", \"age\":\"26\"}";
HttpHeaders headers = new HttpHeaders();
headers.add("Content Type", "application/json;charset=utf-8");
return new ResponseEntity<String>(msg, headers, HttpStatus.OK);
}```
Author And Source
이 문제에 관하여([컨트롤러 메서드의 파라미터 타입]2021.01.18), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinheesung/Spring2021.01.18저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)