SpringBoot@RequestBody 가 잘못 보 고 했 습 니 다('application/x-www-form-urlencoded;charset=UTF-8' not supported)

4636 단어 자바 기술Spring
Spring boot 에서@RequestBody 를 사용 하면 오류 가 발생 합 니 다.오류 알림Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported코드 는 다음 과 같 습 니 다.
    @RequestMapping(value = "/act/service/model/{modelId}/save", method = RequestMethod.POST)
	public void saveModel(@PathVariable String modelId, @RequestBody MultiValueMap values) {
        //     
	}

이것 은 전통 적 인 spring MVC 에 서 는 효과 가 있 지만 Spring boot 에 서 는 잘못 보고 할 수 있 습 니 다.전통 적 으로 Spring MVC 가 효과 가 있 는 이 유 는주해,자료 조회,주해 가 다음 과 같은 내용 의 spring 3.1 버 전 을 설정 하기 때 문 입 니 다.

            
        
              
                   
                    
                
          
    
          
              
                  
                  
                  
                  
                  
                  
                  
              
          
      
    
    
    
    
    
    
    

전송:http://elf8848.iteye.com/blog/875830 이 찾 은 자 료 는 3.1 이지 만 women 에서 볼 수 있 습 니 다.마지막 으로 Jackson 의 json 처리 프로그램 이 설정 되 어 있 습 니 다.업 데 이 트 된 버 전에 서 Annotation MethodHandlerAdapter 는 폐기 되 었 습 니 다.Request Mapping HandlerAdapter 를 사용 하여 Request Mapping HandlerAdapter 의 소스 코드 를 보 세 요.

	public RequestMappingHandlerAdapter() {
		StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
		stringHttpMessageConverter.setWriteAcceptCharset(false);  // see SPR-7316

		this.messageConverters = new ArrayList>(4);
		this.messageConverters.add(new ByteArrayHttpMessageConverter());
		this.messageConverters.add(stringHttpMessageConverter);
		this.messageConverters.add(new SourceHttpMessageConverter());
		this.messageConverters.add(new AllEncompassingFormHttpMessageConverter());
	}


이 안 에는 제 이 슨 의 처리 과정 이 없다.우 리 는 그것 을 더 했다.
@EnableWebMvc
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    
    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
        RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter();
        
        List> converters = adapter.getMessageConverters();

        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        List supportedMediaTypes = new ArrayList();
        MediaType textMedia = new MediaType(MediaType.TEXT_PLAIN, Charset.forName("UTF-8"));
        supportedMediaTypes.add(textMedia);
        MediaType jsonMedia = new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8"));
        supportedMediaTypes.add(jsonMedia);jsonConverter.setSupportedMediaTypes(supportedMediaTypes);
        
        converters.add(jsonConverter);
        
        
        adapter.setMessageConverters(converters);
        
       return adapter;
    }
}

성공,오류 제거,정확 한 매개 변 수 를 얻 었 습 니 다.

좋은 웹페이지 즐겨찾기