Controller 의 handler 방법 파라미터
2950 단어 springMVCcontroller
@ RequestMapping 에서 설명 하 는 handler 가 허용 하 는 방법 매개 변 수 는 Errors 와 BindingResult 를 포함 합 니 다. 이 두 가지 종 류 는 Spring 의 검증 프레임 워 크 (vaidation) 의 클래스 입 니 다.이 매개 변 수 는 매개 변수 목록 에 있 는 이전 (바짝 붙 어 있 고 중간 에 다른 Model 매개 변 수 를 만 들 수 없습니다. 방법 서명 에 model 대상 이 한 개 만 있 는 것 이 아니 라 Spring 은 각각 Binding Result 대상 을 만 들 것 입 니 다) @ ModelAttribute 에 연 결 된 model 이미지 에 오류 검증 정 보 를 되 돌려 줍 니 다.
@ ModelAttribute 를 언급 했 습 니 다. 이 주 해 는 방법 이나 방법 매개 변수 목록 에 넣 을 수 있 습 니 다.
방법 에 이 방법 을 추가 하 는 목적 은 하나 이상 의 model 속성 을 추가 하 는 것 입 니 다. @ RequestMapping method 와 같은 매개 변수 형식 을 지원 하지만 직접 매 핑 요청 을 할 수 없습니다.같은 Controller 에서 @ ModelAttribute method 는 @ RequestMapping method 이전에 활성 화 됩 니 다. 다음 예 는 하나 와 여러 속성 을 추가 하 는 경우 입 니 다.
//add one attribute
//the return type of the method is added to the model under the name "account"
//you can customize the name via @ModelAttribute("myAccount")
@ModelAttribute
public Account addAccount(@RequestParam String number){
return accountManager.findAccount(number);
}
//add multiple attributes
public void populateModel(@RequestParam String number, Model model){
model.addAttribute(accountManager.findAccount(number));
// add more...
}
속성 을 추가 한 상태 에서 속성 명 을 명확 하 게 지정 하지 않 으 면 반환 대상 의 유형 에 따라 기본적으로 지정 한 속성 명 입 니 다. 예 를 들 어 반환 대상 유형 이 Account 이면 속성 명 은 account 입 니 다.
@ModelAttribute 방법 매개 변수 에 추가
또 다른 주의해 야 할 것 은 @ RequestBody 가 설명 하 는 방법 매개 변수 입 니 다. 이 매개 변 수 는 HTTP request body 와 연결 되 어 있 습 니 다.request body 를 방법 매개 변수 로 변환 하려 면 HttpMessageConverter (MVC namespace 를 언급 했 습 니 다. 기본적으로 더 많은 message converters 를 등 록 했 습 니 다) 를 사용 해 야 합 니 다. 이 종 류 는 HTTP request message 를 대상 으로 변환 할 수도 있 고 한 대상 을 HTTP response body 로 변환 할 수도 있 습 니 다.
@RequestBody 방법 매개 변 수 는 @ Valid 에 주석 을 달 수 있 습 니 다. 그러면 Validator 에 의 해 검 증 됩 니 다.@ ModelAttribute 인자 와 달리 @ RequestBody 의 인증 오 류 는 항상 MethodArgument NotValidException 을 가 져 옵 니 다. 이 이상 은 Default Handler Exception Resolver 에 의 해 처리 되 고 클 라 이언 트 에 400 오류 코드 를 되 돌려 줍 니 다.
@Response Body 는 @ RequestBody 와 비슷 합 니 다. 이 주 해 를 방법 에 놓 으 면 이 방법 이 되 돌아 오 는 내용 을 HTTP response body 에 직접 기록 합 니 다 (Model 에 넣 지 않 고 그림 이름 으로 해석 되 지 않 습 니 다). 예 를 들 어:
@RequestMapping(value="/something", method=RequestMethod.PUT)
@ResponseBody
public String helloWorld(){
return "hello world!"
}
위의 예, "hello world!" 이 텍스트 는 HTTP response stream 에 기 록 됩 니 다.
요청 (request parameters, path variables, request headers, cookie values 등 포함) 에서 추출 한 String - based 값 은 그들 이 연 결 된 매개 변수 에 속 하 는 형식 으로 변환 해 야 합 니 다. 연 결 된 매개 변수 가 String 이 아니라면 Spring 은 앞에서 언급 한 값 을 자동 으로 적당 한 유형 으로 변환 합 니 다. 모든 간단 한 유형, 예 를 들 어 int, long,Date 등 은 모두 지 지 를 받는다.WebDataBinder 나 FormatingConversionService 를 통 해 이러한 전환 을 더욱 맞 출 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Spring MVC] [1] 5. 스프링 MVC - 구조 이해핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회 핸들러 어댑터 실행: 핸들러 어댑터를 실행 핸들러 매핑 org.sp...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.