public String toHistoryRecordDetail(@RequestParam @ModelAttribute Map<String, String> map) {
return "history_detail";
}
此处后端在map上一起使用了@RequestParam和@ModelAttribute两个注解。
history_detail.jsp页面中如下,无法获取到map的值
<input type="hidden" id="recordId" value="${map.recordId}">
<input type="hidden" id="type" value="${map.type}">
请大佬们帮忙分析一下
关于spring mvc中的两个注解:@RequestParam、@ModelAttribute区别,原先并没有特别注意,直到最近找别人开发的一个小模块的bug时,才有意识的比较了两者的区别。
1、@RequestParam,@RequestParam("xx") 表示在前端传递过来的参数中必须有个参数名称为“xx”(可以使用required=false避免必须)
2、@ModelAttribute,@ModelAttribute("xx") 表示将前端传递过来的参数按照名称注入到对应的对象中,“xx”只是表示放到ModelMap中的key值
如果获取单独获取参数的话,只能写一个 @RequestParam
如果是希望将获取的参数再带到跳转的页面使用,可以试试ModelMap
@RequestMapping("地址") //你需要转向的地址
public String toHistoryRecordDetail(@RequestParam Map<String, String> map,Model model) {
model.put("map",map);
return "history_detail";
}
这样试试