Spring 休息 405

Spring REST 405

我做了这个休息,首先看起来一切都必须正常工作,但我遇到了 405。

HTTP Status 405 - Request method 'GET' not supported

应用程序上下文

@Bean
    public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager){
        ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
        resolver.setContentNegotiationManager(manager);

        List<ViewResolver> resolvers = new ArrayList<ViewResolver>();
        resolvers.add(getViewResolver());
        resolvers.add(jsonViewResolver());

        resolver.setViewResolvers(resolvers);
        return resolver;
    }   

    @Bean
    public ViewResolver jsonViewResolver(){
        return new JsonViewResolver();
    }

控制器

@RequestMapping(value="/rest/create/{login}", method = RequestMethod.PUT)
    @ResponseStatus(HttpStatus.NO_CONTENT)
    public @ResponseBody User updateUser(@RequestBody User user, @PathVariable String login){
        dao.saveUser(user);
        return user;
    }

method = RequestMethod.PUT 更改为 method = RequestMethod.GET,或对现有映射使用 PUT 请求。

如果您不想使用插件,您可以使用 jQuery

创建 PUT 请求
$.ajax({
    url: someUrl,
    data: someData, 
    type: 'PUT',
    success: function(result) {
        // Do something with the result
    }
});

RequestMethod.PUT更改为RequestMethod.GET

 @RequestMapping(value="/rest/create/{login}", method = RequestMethod.GET)

如果您想使用 put 方法,请相应地修改您的 HTML 表单标签和控制器

示例HTML形式

 <form:form id="mainForm" name="mainForm" method="PUT" action="Temp.htm" enctype="multipart/form-data" commandName="tempBean">

Spring 控制器

@RequestMapping(value="/rest/create/{login}", method = RequestMethod.PUT)