私にとっては、複数のパラメーターがクエリ パラメーターではなくパスの一部であっても、複数のパラメーターをコンマで区切っても問題はありません。私はそれをテストし、実際に動作します。
int
実際には、これらのパラメーターの正確性を確認する必要がない場合は、直接バインドすることもできます。私は@PathVariable
これらのバインディングに使用しました。
@GET
@Produces("application/json")
@Path("{parameter1}/july/{param2},{param3},{param4}/month")
public Month getResult(@PathVariable("parameter1") String parameter1, @PathVariable("param2") int param2 , @PathVariable("param3") int param3, @PathVariable("param4") int param4) {
return action.getResult(parameter1, param2, param3,param3);
}
編集:
テストしたコードは次のとおりです。
@Controller
public class InfoController {
@RequestMapping(method = RequestMethod.GET, value = "/seating/{param1},{param2},{param3}/month")
public String showMonthView(Model uiModel, @PathVariable("param1") int p1,
@PathVariable("param2") int p2, @PathVariable("param3") int p3,
HttpServletRequest httpServletRequest) {
LOG.debug(String.format("view:/seating/%d,%d,%d/month", p1, p2, p3));
uiModel.addAttribute("param1", p1);
uiModel.addAttribute("param2", p2);
uiModel.addAttribute("param3", p3);
return "month";
}
@ResponseBody
@RequestMapping(method = RequestMethod.GET, value = "/seating/{param1},{param2},{param3}/month", produces="application/json")
public Map<String, Integer> showMonthJson(@PathVariable("param1") final int p1,
@PathVariable("param2") final int p2, @PathVariable("param3") final int p3) {
LOG.debug(String.format("json:/seating/%d,%d,%d/month", p1, p2, p3));
Map<String, Integer> result = new HashMap<String, Integer>() {{
put("param1", p1);
put("param2", p2);
put("param3", p3);
}};
return result;
}
}
最初のメソッドの /seating/month.jsp にある正しいビュー。
または、3 つのパラメーターで構成されるエンティティを返し、json または xml を生成しても問題ありません。