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)
我做了这个休息,首先看起来一切都必须正常工作,但我遇到了 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)