Monday, 15 September 2014

java - Spring RequestMapping URL with hierarchal values -



java - Spring RequestMapping URL with hierarchal values -

lets have category domain model object follows file tree structure. want able build requestmapping annotation controller method that

/category/art/macros /category/people/weddings/2014/5-19 /category/sports/college/baseball/2014/5-19

can handled minimum number of controller methods.

i have 1 controller method defined:

@requestmapping(value ={"/category/{category}"}, method = requestmethod.get) public string admincategory(modelmap model, @pathvariable(value = "category") string category){ model.addattribute("message", category); homecoming "gallery"; }

this works single url

/category/sports

how can adapt more flexible?

the challenge here can't create @pathvariable optional can have 2 or more controller methods can phone call same service code. so, 3 url patterns have define 3 different controllers:

get: /category/art/macros @requestmapping(value ={"/category/{category}"}, method = requestmethod.get) public string admincategory(modelmap model, @pathvariable(value = "category") string category){ model.addattribute("message", category); homecoming "gallery"; } get: /category/people/weddings/2014/5-19 @requestmapping(value ={"/category/{category}/{subcategory}/{year}/{date}"}, method = requestmethod.get) public string admincategory(modelmap model, @pathvariable(value = "category") string category, @pathvariable(value = "subcategory") string subcategory, @pathvariable(value = "year") string year, @pathvariable(value = "date") string date ){ model.addattribute("message", category, subcategory, year, date); homecoming "gallery"; } get: /category/sports/college/baseball/2014/5-19 @requestmapping(value ={"/category/{category}/{subcategory}/{year}/{date}"}, method = requestmethod.get) public string admincategory(modelmap model, @pathvariable(value = "category") string category, @pathvariable(value = "subcategory") string subcategory, @pathvariable(value = "sub_sub_category") string sub_sub_category, @pathvariable(value = "year") string year, @pathvariable(value = "date") string date ){ model.addattribute("message", category, subcategory, sub_sub_category, year, date); homecoming "gallery"; }

ps can user @requestparam can optional , cut down number of controllers.

java spring

No comments:

Post a Comment