注释RequestMapping()给出错误

时间:2018-08-06 13:16:04

标签: java spring rest spring-mvc spring-boot

我从Spring Boot开始,并尝试提供Rest服务。 我正在编写一个控制器,其中有到3种方法的RequestMappings。 当thirl注释在编写代码时出现此错误时,其中两个可以正常工作。

  

此行有多个标记     -语法错误,插入“枚举标识符”以完成EnumHeader     -语法错误,请插入“ EnumBody”以完成EnumDeclaration

我尝试了其他所有答案,但似乎无法找出问题所在。这是我的Controller代码-

package io.springboot.topics;

import java.util.Arrays;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TopicsController {

    @Autowired
    private TopicSrvice topicService;

    @RequestMapping("/topics")
    public List<Topic> getAllTopics() {
        return topicService.getAllTopics();
    }
    @RequestMapping("/topics/{id}")
    public Topic getTopic(@PathVariable String id) {
        return topicService.getTopic(id);
    }

 @RequestMapping(method=RequestMethod.POST,value="/topics")

}

错误出现在最后一行,即最后一个Requestmapping()。

2 个答案:

答案 0 :(得分:0)

有点晚了,但是对于那些刚刚发现此问题的人:您需要在@RequestMapping下键入实际的方法。当您在此阶段停止时,Eclipse会出现问题,但是一旦编写了方法,您就可以使用了。至少那对我有用。

所以:

@RequestMapping(method=RequestMethod.POST,value="/topics")
public ... {
//your method
}

答案 1 :(得分:-1)

您正在为两种方法编写/ topics URL,一种用于GET,一种用于POST,Spring不支持此配置。您可以更改两种不同方法的url,也可以编写一个具有url / topics和array的单个方法HttpMethod之类的方法= {RequestMethod.GET,RequestMethod.POST}