gpt4 book ai didi

Spring - 使用多操作 Controller 调用的@modelattribute 方法的顺序是什么

转载 作者:行者123 更新时间:2023-12-03 18:40:40 25 4
gpt4 key购买 nike

我有一个 Controller ,它有多个 Action 和相应的@modelattribute 方法。其中一个方法的输出是下一个方法的输入。然而,该值从未被设定。当我调试时,我发现方法的调用顺序不是我所期望的。它是否与命令名称 @ModelAttribute("nominationCommand") 或方法名称有关。是什么插入了这一点?

@ModelAttribute("awardCommand")
public AwardCommand getAwardList(HttpServletRequest request, HttpSession session, Model model) {

@ModelAttribute("associateDetails")
public List<AssociateDetailsCommand> getAssociateList (HttpServletRequest request, HttpSession session, Model model) {

@ModelAttribute("achievementCommand")
public AchievementDetailsCommand getAchievementDetails(HttpServletRequest request, Model model) {

@ModelAttribute("departmentCommand")
public List<DepartmentCommand> getDepartmentList(HttpServletRequest request,HttpSession session, Model model) {

我需要按照上面列出的相同顺序调用方法。但是第三个方法在第二个之前被调用。需要你的帮助。

最佳答案

Spring 使用 Java 反射获取方法列表。在大多数情况下,就 JDK 而言,这是相当不可预测的。

最常见的解决方法是在 Controller 的处理程序中用相应的模型替换@ModelAttribute。

@RequestParam("/example/view")
public ModelAndView view(HttpServletRequest request, Model model /*probably some more parameters*/){
model.put("awardCommand", getAwardCommand());
model.put("achievementCommand", getAchievementCommand());
///... TODO put other
}

关于Spring - 使用多操作 Controller 调用的@modelattribute 方法的顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com