【发布时间】:2016-11-18 22:43:22
【问题描述】:
@RestController
@RequestMapping(value = "/players")
public class REST {
@RequestMapping(method = RequestMethod.GET)
public List<Player> getAll() {
return service.getAll();
}
@RequestMapping(method = RequestMethod.GET, params = {"team", "score"})
public List<Player> getByPlayerAndScore(@RequestParam(value = "team") String team,
@RequestParam(value = "score", required = false) int score) {
return service.getByPlayerAndScore(team, score);
}
}
Q1:我希望第一种方法适用于网址“/players”(按预期工作),第二种方法适用于网址(“/players?team=xyz”、“/players ?团队=xyz&score=1000")。 spring 将方法 1 用于“/players?team=xyz”。即使我将分数指定为可选,除非我指定 2 个参数,否则弹簧不会使用第二种方法。如何解决这个问题以及编写控制器方法来处理这些类型的请求的最佳方式是什么,用户可以发送不同的可用参数集(如 param1 和 param2,只有 param1,只有 param2 等)。
Q2:对于第二种不同参数集的查询,如何在DAO层编写数据库查询。我应该使用不同的查询编写单独的方法还是使用多个 if 语句编写一个方法(例如,如果用户发送“团队”将团队添加到数据库查询,如果用户发送“分数”将其添加到数据库查询...)
【问题讨论】:
标签: java spring spring-mvc