猿问

为其他带有 Path 变量的 URL 选择的默认请求映射方法

我有一个@RestController如下。该方法getTrain(long)应该为 URL 获取,http://localhost:8080/trains/1但它正在获取getTrains(). 其他 URL 按预期工作正常。我不确定我是否遗漏或不理解某些东西。我还查看了Spring 请求映射到特定路径变量值的不同方法 ,它有所帮助。


要求: 1. /trains [POST] - 添加火车 2. /trains [GET] - 获取所有火车 3. /trains/{trainId} - 通过 id 获取火车


@RestController

public class TrainController {


    @Autowired

    private TrainService trainService;


    @RequestMapping(headers = { "Accept=application/json" }, method = RequestMethod.POST)

    public TrainDto addTrain(@RequestBody TrainDto trainDto) throws Exception {


        return trainService.addTrain(trainDto);

    }


    @RequestMapping(method = RequestMethod.GET)

    public List<TrainDto> getTrains() throws Exception {


        return trainService.getTrains();

    }


    @RequestMapping(value = "{trainId:\\d+}", method = RequestMethod.GET)

    public TrainDto getTrain(@PathVariable("trainId") long trainId) throws Exception {


        return trainService.getTrain(trainId);

    }

}


三国纷争
浏览 169回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答