【发布时间】:2021-08-14 15:39:32
【问题描述】:
我有一个控制器:
@Controller
public class UserController {
@Autowired
private UserService userService;
protected int userId; // I need to use it across many other controllers. HOW?
@GetMapping("/")
private String viewHomePage(Model model) {
return "eAccounts";
}
@GetMapping("/dashboard")
private String getDashboardPage() {
return "dashboard";
}
@GetMapping("/signup")
private String getSignupPage(Model model) {
User user = new User();
model.addAttribute("user", user);
return "signup";
}
@PostMapping("/verifySignup")
private String verifySignup(@ModelAttribute("user") User user, Model model, HttpServletRequest request) {
if (userService.verifySignup(user) == 1) {
userId = user.getId();// save user id for later use
return "redirect:/dashboard";
}
return "signup";
}
}
并且有多个控制器(例如assetController、liabilityController等):
@Controller
public class AssetController {
@Autowired
private AssetService assetService;
@GetMapping("/assets")
public String getAssetsPage(Model model) {
model.addAttribute("listAssets", assetService.getAllAssets(userId)); // here i need to use userId, and at many more places
return "assets";
}
}
我不想将我所有的控制器代码合并到一个控制器中。 我只需要在用户注册或登录网站时保存 userId,然后在许多其他控制器中使用它。任何干净的解决方案将不胜感激。
【问题讨论】:
标签: java spring-boot model-view-controller