触发默认控制器获取所有汽车的正常 uri 只是“/cars”
我希望能够使用 uri 搜索汽车,例如:“/cars?model=xyz”,它将返回匹配汽车的列表。所有请求参数都应该是可选的。
问题是,即使使用查询字符串,默认控制器也会触发,我总是得到“所有汽车:......”
有没有办法在没有单独的搜索 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();
}
}