すべての車を取得するためにデフォルトのコントローラーをトリガーする通常の uri は、単に "/cars" です。
たとえば、一致する車のリストを返す "/cars?model=xyz" などの uri を使用して、車も検索できるようにしたいと考えています。すべてのリクエスト パラメータはオプションである必要があります。
問題は、クエリ文字列を使用しても、デフォルトのコントローラーがトリガーされ、常に「すべての車: ...」が表示されることです。
別の検索 URI (「/cars/search?..」など) を使用せずに Spring でこれを行う方法はありますか?
コード:
@Controller
@RequestMapping("/cars")
public class CarController {
@Autowired
private CarDao carDao;
@RequestMapping(method = RequestMethod.GET, value = "?")
public final @ResponseBody String find(
@RequestParam(value = "reg", required = false) String reg,
@RequestParam(value = "model", required = false) String model
)
{
Car searchForCar = new Car();
searchForCar.setModel(model);
searchForCar.setReg(reg);
return "found: " + carDao.findCar(searchForCar).toString();
}
@RequestMapping(method = RequestMethod.GET)
public final @ResponseBody String getAll() {
return "all cars: " + carDao.getAllCars().toString();
}
}