在一个页面中,我有一个DataTable。 单击用户时,用户ID将作为url值传递 usersInfo?的getId = 1
我有一个像这样的控制器:
@RequestMapping(value = "users/userInfo", method = RequestMethod.GET, params = {"getId"})
@ResponseBody
public ModelAndView getClientStat(@RequestParam(value="getId", required = true) String getId) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByEmail(auth.getName());
long clientId=0;
clientId=Long.parseLong(getId);
Client client=clientService.getClientById(clientId);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("userName", user.getName() + " " + user.getLastName());
modelAndView.addObject("userId", user.getId());
modelAndView.addObject("id", client.getName()+ " " + client.getLastName());
modelAndView.setViewName("users/userInfo");
return modelAndView;
}
然后我使用传递的对象id,它具有名称和姓氏以显示用户名。
然后在打开的users / userInfo页面上,我有一个按钮,它发送到另一个页面来填写表格。 问题是:如何将这些表单的字段保存到数据库中,但是对于我在控制器中具有id的客户端。
如何传递此值? 或者有更好的逻辑方法来做到这一点? 我在使用Spring时相当新,所以如果不清楚我会提前道歉,但我真的很感激一些指导。 谢谢
答案 0 :(得分:0)
您可以将@PathVariable与addAttribute
一起使用@RequestMapping(value = "users/edit/{userId}", method = RequestMethod.GET)
public ModelAndView getClientStat(@PathVariable(value="userId", required = true) String userId) {
//Use the userId to find user information and pass
modelAndView.addAttribute("id", userId)
modelAndView.setViewName("users/edit");
return modelAndView;
}
在您的视图中,您可以将userId添加为隐藏字段
<input type="hidden" name="userId" value={userId} />
,取决于你使用百里香花或jsp