2017-12-20 6 views
0
@Controller 
public class ControllerClass { 

    @RequestMapping(value="/test",method=RequestMethod.POST) 
    public String test(){ 
     return "index"; 
    } 

} 

Eigenschaften:Frühling Boot "Request-Methode 'POST' nicht unterstützt"

spring.mvc.view.prefix=/ 
spring.mvc.view.suffix=.html 

Es ist eine einfache Mvc Controller-Klasse, wo ich Anfrage veröffentlichen index.html Seite in Ressourcen-/statischen Ordnern zu erhalten. Immer wenn ich die Post-Anfrage von Rest-Client oder von HTML-Formularen sende, bekomme ich den Fehler - "Request-Methode 'POST' nicht unterstützt". Wenn ich zu "RequestMethod.POST" zu "RequestMethod.GET" ändere, funktionierte es richtig.

+0

Sind Sie sicher, dass Sie keine Anfrage senden? – uday

+0

Sie sollten in der Lage sein, diesen Controller zu entfernen, und das GET wird weiterhin funktionieren. spring bootet automatisch statische Inhalte von/resource/static sowie einigen anderen Orten: https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot. es macht nicht wirklich Sinn POST eine statische HTML-Datei zu bekommen, musst du POST? – brub

+0

Auch '@ RestController' ist besser geeignet, wenn Sie Methoden haben, deren Rückgabewerte den HTTP-Antworttext bilden sollen. Als einfachen Test fügen Sie '' ResponseBody'' zu Ihrer 'test()' Methode hinzu. –

Antwort

0

Ich löste dies, indem ich die thymeleaf stater-Abhängigkeit in pom.xml hinzufügte und die gesamte html-Datei vom statischen Ordner in den Vorlagenordner verschoben habe.

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 

Idealerweise sollte es ohne thymeleaf funktionieren, aber ich verstehe nicht, warum es keine POST-Anfragen unterstützt.

Verwandte Themen