С Spring 3.0, могу ли я иметь дополнительную переменную пути?С Spring 3.0, могу ли я сделать необязательную переменную пути?
Например
@RequestMapping(value = "/json/{type}", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
HttpServletRequest req,
@PathVariable String type,
@RequestParam("track") String track) {
return new TestBean();
}
Здесь я хотел бы /json/abc
или /json
вызвать тот же метод.
Один очевидный обходной путь объявить type
в качестве параметра запроса:
@RequestMapping(value = "/json", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
HttpServletRequest req,
@RequestParam(value = "type", required = false) String type,
@RequestParam("track") String track) {
return new TestBean();
}
, а затем /json?type=abc&track=aa
или /json?track=rr
будет работать
Это, безусловно, хороший способ сделать это. – Shamik
@Shamik: Это убедительная причина * не * использовать переменные пути, на мой взгляд. Комбинаторная пролиферация может быстро выйти из-под контроля. – skaffman
На самом деле не потому, что путь не может быть таким сложным, когда он заполняется дополнительными компонентами. Если у вас есть несколько или более двух дополнительных элементов пути, вам следует серьезно рассмотреть возможность переключения нескольких из них для запроса параметров. –