[英]Spring MVC - How to get all request params in a map in Spring controller?
[英]Spring Get all params from URL in Controller
我在前端有一個表單,用戶從月份列表中選擇年份和一個或多個月份。 這些參數將作為Get Method發送給Controller。 給定這樣的URL:
..../{year}/{months}/excel/
月份將是所選月份的變量列表,即[ 01,02,10
]。
我如何在Controller中接收所有參數? 到目前為止這是我的控制器:
@RequestMapping(value = "/{year}/{months}/excel/", method = RequestMethod.GET, produces = EXCEL_FORMAT_HEADER)
public @ResponseBody
ModelAndView getRankingByYearExcel(@PathVariable("year") Integer year,
@RequestParam Map<String, Object> months)
{...}
我這樣做了並且工作了,聲明months
的字符串:
@RequestMapping(value = "/{year}/excel/", method = RequestMethod.GET, produces = EXCEL_FORMAT_HEADER)
public @ResponseBody
ModelAndView getRankingByYearExcel(@PathVariable("year") Integer year,
@RequestParam String[] months)
並在URL中發送變量month作為字符串數組:
../2016/excel/?months=1,3,12
謝謝你指導我這個方向
我會將@RequestParam Map<String, Object> months
更改為@RequestParam String months
您可以根據逗號分割月份。
String[] monthsList = months.split(",");
monthsList
數組將包含所有用戶選擇的值。
以下是將所有URI模板變量綁定到Map並使用的方法。
首先,您需要將@RequesetParam
更改為@PathVariable
例1:
@RequestMapping("{id}/messages/{msgId}")
public String handleRequest4 (@PathVariable Map<String, String> varsMap, Model model) {
model.addAttribute("msg", varsMap.toString());
return "my-page";
}
例2:
@GetMapping("/request4/{name}/{age}/address/{city}/{country}")
@ResponseBody
public String handler(@PathVariable Map<String, String> params) {
StringBuilder builder = new StringBuilder();
builder.append("URL parameters - <br>");
for (Entry<String, String> entry : params.entrySet()) {
builder.append(entry.getKey() + " = " + entry.getValue() + "<br>");
}
return builder.toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.