2015-01-15 109 views
-3

我做了这个休息,对于第一次看都必须能够正常工作,但我赶上405弹簧安置405

HTTP状态405 - 请求方法“GET”不支持

应用程序上下文

@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; 
    } 

回答

2

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

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

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

我想使用PUT – alemale 2015-01-15 15:22:17

+0

然后使用PUT作为方法。你如何提出要求?如果来自浏览器,请使用Chrome等Postman插件或FireFox Poster。 – 2015-01-15 15:23:31

+0

我想从浏览器制作,无需任何插件即可开始 – alemale 2015-01-15 15:24:52

0

变化RequestMethod.PUTRequestMethod.GET

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

创建PUT请求。如果你想使用put方法然后修改您的HTML表格标签和控制器相应

示例HTML表格

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

春季控制器

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